Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellenamen automatisch aus 2 anderen Zellen halten zusammen setzen
#1
Danke für die Aufnahme und einen schönen 1.Advent.

Folgende Frage:

Wie schaffe ich es, dass Excel automatisch einen Namen definiert (im Namensfenster) für fortlaufende Zellen in Spalte A aus den fortlaufenden ZellIinhalten aus Spalte B und C zusammensetzt?
BSP:
Spalte B zelle1: Hund Spalte C Zelle 1:Fisch Name Spalte A Zelle 1: HundFisch
Spalte B zelle2:katze Spalte C Zelle 2:mond Name Spalte A Zelle 2: KatzeMond

Vielen Dank!
Sebastian
Antworten Top
#2
Hola,

und warum meldest du dich nicht mehr im Herber Forum?

https://www.herber.de/forum/messages/1726536.html

Gruß,
steve1da
Antworten Top
#3
Hallo nochmal.

Leider war mir nicht bewusst, dass es gegen die Etikette verstößt, wenn man in verschiedenen Foren gleiche Fragen stellt.
Dies ist das erste Mal, dass ich zu Excel explizite Fragen habe. Ich war vorher noch nie angemeldet. Leider bin ich offenbar direkt gesperrt worden, da ich mich nicht im Herber Forum mehr anmelden kann.
Aber gut...Unwissenheit schützt offenbar nicht vor Strafe.

Deshalb hier nochmal ein Versuch. 

Habe diesen Code von einem Freund zugesandt bekommen, der ihn im Netz gefunden hat, selber aber genauso wenig von VBA o. programmieren versteht, wie ich.
WIe müsste ich ihn anpassen, wenn meine Eckdaten folgende sind:
Arbeitsblatt heißt Sheet90 (Tables) 
Zelle in der ein fester erster Teil des Namens steht (immer): Translation --> Zeile 1 /Spalte 1655
Zellinhalte für den 2 Teil des Namens: In Spalte 1656, fotlaufende Zeilen ab Zeile 406.
DAs Programm unten soll modifiziert also in Spalte 1655 ab Zeile 406 jeder Zelle einen Namen aus TRanslation (Zeile1/Spalte1655) und dem Begriff aus Spalte 1656 ab Zeile 406 fortlaufend bilden.
ZB.
TranslationSmith (weil Smith in Zeile 406 von Spalte 1656)
TranslationCobbler (weil Cobbler in Zeile 407 von Spalte 1656)
usw.
Ist es möglich das unten soweit anzupassen, damit ich es mit meinem sehr begrenzten Wissen einbauen kann?
Danke nochmal.

Option Explicit
Sub Namen_auto()
Const ZEILEN  As Long = 6 'Hier die Anzahl der Zeilen festlegen
Const SPALTEN As Integer = 6 'Hier die Anzahl der Spalten festlegen
Dim z As Long
Dim s As Integer
For z = 2 To ZEILEN
  For s = 2 To SPALTEN
    ThisWorkbook.Names.Add _
       Name:=Cells(z, 2) & "_" & Cells(2, s), _
       RefersTo:="=Tabelle1!" & Cells(z, s).Address
  Next
Next
End Sub
Sub Namen_weg()
Dim n As Name
For Each n In ThisWorkbook.Names
  n.Delete
Next
End Sub

Mit freundlichen Grüßen
Sebastian
Antworten Top
#4
(02.12.2019, 17:50)SebastianL schrieb: Hallo nochmal.

Leider war mir nicht bewusst, dass es gegen die Etikette verstößt, wenn man in verschiedenen Foren gleiche Fragen stellt.
Dies ist das erste Mal, dass ich zu Excel explizite Fragen habe. Ich war vorher noch nie angemeldet. Leider bin ich offenbar direkt gesperrt worden, da ich mich nicht im Herber Forum mehr anmelden kann.
Aber gut...Unwissenheit schützt offenbar nicht vor Strafe.
...
Mit freundlichen Grüßen
Sebastian

Hallo Sebastian, das musst du doch hier nicht ausbreiten, zumal ich noch nie gehört habe, dass bei herber irgendwer (wegen Crosspost) gesperrt wurde... Und wenn man sich mal die Zeit nehmen würde und die (unsere) Forums Regeln lesen, könnte das helfen. Aber Nein...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#5
Sorry, ich habe doch nur auf den Post des Vorposters geantwortet.
Seufz.

Offenbar scheine ich unbewusst ein Fettnäpfchen nach dem nächsten zu treffen.

Hatte solche Probleme außerhalb von Excel Foren noch nie.  Confused
DAS war NICHT Böse gemeint...
Antworten Top
#6
Hallo Sebastian,
Sub Namen_Erstellen()
Const SPALTE As Long = 1656 'Hier die Spalte festlegen
Dim lngZ As Long
Dim strName As String
strName = Cells(1, SPALTE - 1).Value 'für globalen Namen
'strName = ActiveSheet.Name & "!" & Cells(1, SPALTE - 1).Value 'für lokalen Namen
For lngZ = 406 To Cells(Rows.Count, SPALTE).End(xlUp).Row
ThisWorkbook.Names.Add _
Name:=strName & Cells(lngZ, SPALTE).Value, _
RefersTo:=Cells(lngZ, SPALTE)
Next lngZ
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • SebastianL
Antworten Top
#7
Herzlichen Dank für die Hilfe!
Werde es morgen testen können!
Vielen DAnk!
Antworten Top
#8
Hallo nochmal!
Die automatische Namensgebung läuft super. Leider springt der Debugger immer dann an, wenn im variablen Feld für den Namen unpassende Zeichen stehen (was ja logisch ist).
Es kommen vor: Leerzeichen , Umlaute (ä und ö usw.), sowie ' und ().
Ist es ohne große Umstände möglich den Code so anzupassen, das Leerzeichen einfach mit _ gefüllt werde und Umlaute mit Ae usw., sowie Apostrophe und Klammer gelöscht?
Oder ist das einfach zu umständlich?
Es geht dabei um ca 2000 namen....da will ich nicht einzeln durch...Wink

Die Namen müssen nur eindeutig sein, nicht korrekt geschrieben.
LG
Sebastian
Antworten Top
#9
Hallo Sebastian,

jetzt mit Ersetzung:
Sub Namen_Erstellen()
Const SPALTE As Long = 1656 'Hier die Spalte festlegen
Dim lngR As Long, lngZ As Long
Dim strNameT1 As String, strNameKomplett As String
Dim strRQ() As Variant
Dim strRZ() As Variant

strRQ = Array("ä", "Ä", "ö", "Ö", "ü", "Ü", "ß", " ", "'", "(", ")")
strRZ = Array("ae", "Ae", "oe", "Oe", "ue", "Ue", "ss", "_", "", "", "")

strNameT1 = Cells(1, SPALTE - 1).Value 'für globalen Namen
'strNameT1 = ActiveSheet.Name & "!" & Cells(1, SPALTE - 1).Value 'für lokalen Namen
For lngZ = 406 To Cells(Rows.Count, SPALTE).End(xlUp).Row
strNameKomplett = strNameT1 & Cells(lngZ, SPALTE).Value
For lngR = 0 To UBound(strRQ)
strNameKomplett = Replace(strNameKomplett, strRQ(lngR), strRZ(lngR))
Next lngR

ThisWorkbook.Names.Add _
Name:=strNameKomplett, _
RefersTo:=Cells(lngZ, SPALTE)
Next lngZ
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • SebastianL
Antworten Top
#10
Hi Schlamper  :05:
ThisWorkbook.Names.Add aber sonst im ActiveWorkbook rumeiern  :95:

Ganz liebe Grüße vom Pe Ne Trant  :94:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste