Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

VBA sui "NOMI" celle

Ultimo Aggiornamento: 31/10/2020 11:19
31/10/2020 03:33

Ciao a tutti,
non riesco prendere il nome del foglio e l'indirizzo delle celle con "NOME". Dove sbaglio?
Grazie mille
Post: 1.983
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
31/10/2020 09:03

ciao
non penso sia quello che vuoi
ma ci provo

Sub A()
Dim wk As Workbook
Dim n As Name, rg, f
f = "Foglio1"
Set wk = ThisWorkbook
Range("A1:D4") = ""
With wk
For Each n In .Names
rg = rg + 1
Cells(rg, 1) = n.Name
Cells(rg, 2) = .Names(n.Name)
'MsgBox .Names(n.Name).RefersTo
'MsgBox .Names(n.Name)
'If InStr(n.RefersTo, "#REF") Then n.delete
If ActiveSheet.Name = f Then Cells(rg, 3) = ActiveSheet.Name
If ActiveSheet.Name = f Then Cells(rg, 4) = Right(Cells(rg, 2), Len(Cells(rg, 2)) - Len(Cells(rg, 3)) - 2)
Next
End With
End Sub

Post: 6.130
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
31/10/2020 11:00

Ciao Prova cosi. se ho capito bene

Sub A()
Dim wk As Workbook
Dim n As Name, rg, f
f = "Foglio1"
Set wk = ThisWorkbook
Range("A1:B4") = ""
With wk
    For Each n In .Names
        rg = rg + 1
        Cells(rg, 1) = n.Name
        Cells(rg, 2) = .Names(n.Name)
        'MsgBox .Names(n.Name).RefersTo
        'MsgBox .Names(n.Name)
        'If InStr(n.RefersTo, "#REF") Then n.delete
        If Mid(.Names(n.Name), 2, InStr(.Names(n.Name), "!") - 2) = f Then Cells(rg, 3) = Mid(.Names(n.Name), 2, InStr(.Names(n.Name), "!") - 2)
        If Mid(.Names(n.Name), 2, InStr(.Names(n.Name), "!") - 2) = f Then Cells(rg, 4) = Mid(.Names(n.Name), 10)
    Next
End With
End Sub


Ciao By sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
31/10/2020 11:19

@federico460
Grazie. Mi riferivo hai NOMI delle celle, mi ero dimenticato di mettere il segno =
f = "=Foglio1"

@By sal
Grazie meglio il Tuo. Mi chiedevo del "perchè" e ho notato che parti dal 2° carattere
If Mid(.Names(n.Name), 1, InStr(.Names(n.Name), "!") - 1) = f Then Cells(rg, 3) = Mid(.Names(n.Name), 2, InStr(.Names(n.Name), "!") - 2)
If Mid(.Names(n.Name), 1, InStr(.Names(n.Name), "!") - 1) = f Then Cells(rg, 4) = Mid(.Names(n.Name), InStr(.Names(n.Name), "!") + 1, 10)

[Modificato da ABCDEF@Excel 31/10/2020 11:22]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Scrivere su 2 celle diverse su 2 Fogli diversi vba (7 messaggi, agg.: 21/07/2019 21:03)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 05:29. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com