AW: Zellen-Name über alle Spalten bestimmen
20.05.2025 14:36:25
Piet
Hallo
warum willst du Datein als Bilds hochladen? Macht keinen Sinn.
Probiere dafür bitte mal dieses Makro aus. Bei mir funktioniert es einwandfrei.
Amüsanter Hinweis: - für alle Kollegen!
Der menschliche Geist ist -KI- immer noch überlegen!! -- Gott sei Dank!
Während KI also löscht und mit ADD arbeitet, ändert mein Makro einfach den -alten WB-Namen- um!
Das mag die Kollegen verblüffen, scheint NICHT zu gehen, aber ich beweise, Excel kann man austricksen!
Das 1. Makro listet ALLE Wb-Namen auf, das 2 Makro NUR die Namen des gewünschten Sheet.
Bei Allen Namen wird das gewünschte Sheet mit einem "X" markiert.
Jetzt kann der Frager in Spalte E einen neuen Namen vorgeben, z.B. über Formeln zusammengesetzt, und das 3. Makro starten.
Der bereits vorhanden Wb-Namen bleibt an der alten Stelle stehen, RefersTo ändert sich ja nicht, der alte Name wird umbenannt!
Ich bin sehr gespannt auf die Rückkmeldung.
mg Piet
Sub Alle_Wbnamen_auflisten()
Dim Sht As String, Txt As String
Sht = "Tabelle1" 'Sheet, wo namen umbenannt werden sollen
With Sheets("Tabelle2")
.Range("A2:F500").ClearContents
For j = 1 To ThisWorkbook.Names.Count
Txt = ThisWorkbook.Names(j).RefersTo
.Cells(j + 2, 2) = ThisWorkbook.Names(j).Name
.Cells(j + 2, 3) = " ' " & ThisWorkbook.Names(j).RefersTo
If InStr(Txt, Sht) Then .Cells(j + 2, 4) = "X"
Next j
End With
End Sub
Sub Sheet_Wbnamen_aulisten()
Dim Sht As String, Txt As String
Sht = "Tabelle1" 'Sheet, wo namen umbenannt werden sollen
With Sheets("Tabelle2")
.Range("A2:F500").ClearContents
For j = 1 To ThisWorkbook.Names.Count
Txt = ThisWorkbook.Names(j).RefersTo
If InStr(Txt, Sht) Then
.Cells(j + 2, 2) = ThisWorkbook.Names(j).Name
.Cells(j + 2, 3) = " ' " & ThisWorkbook.Names(j).RefersTo
End If
Next j
End With
End Sub
Sub Sheet_Wbnamen_umbenennen()
Dim Sht As String, Txt As String
Sht = "Tabelle1" 'Sheet, wo Namen umbenannt werden sollen
With Sheets("Tabelle2")
For j = 1 To ThisWorkbook.Names.Count
Txt = ThisWorkbook.Names(j).RefersTo
If InStr(Txt, Sht) And .Cells(j + 2, 5) > "" Then _
ThisWorkbook.Names(j).Name = .Cells(j + 2, 5)
Next j
End With
Call Alle_Wbnamen_auflisten
End Sub