Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen speziell umbenennen

Betrifft: Zellen speziell umbenennen von: Marc
Geschrieben am: 30.08.2014 20:51:03

Hallo zusammen,

gerade erst angekommen und ich benötige schon Eure Hilfe bei der Umsetzung einer Idee in ein Makro... ;)
Kurz zum Hintergrund: Es gibt im CAD-Bereich die Möglichkeit, aus einem einzigen erstellten Teil viele andere Teile zu generieren. Nennt sich Teilefamilien.
Dazu verwendet die CAD-Software Excel als Datenlieferant.
Auf Basis des Mutterteiles wird also eine Tabelle mit den jeweiligen Parametern (Name, Länge, Durchmesser, etc.) erstellt. Man trägt nur noch die Werte ein und Klick... Die Teile sind fertig! Jetzt haben diese Teile häufig aber Namen, die die Kopierfunktion von Excel nicht nutzbar machen, wie z.B. Hex_Head_m8x20_8_8... Ich möchte die "20" hochzählen (folgende Zellen füllen) in von mir vorgegebener Schrittweite (1er, 5er, 10er). Habe mehrere Ansätze gefunden, die alle net so richtig funktionieren. Leider bin ich kein wirklich versierter VBA-User, deshalb wende ich mich mal an Euch! Ich hoffe, mein Ziel ist klar geworden!?
Von mir aus schreibt das Makro alle "zusammen gehörenden" Zeichenfolgenden in jeweils eine eigene Zelle, also |Hex_head_m8x| |20| |_8_8| , zählt die richtige Zelle, also die 20 hoch und schreibt alles wieder Zeile für Zeile zurück.
Oder es zerlegt komplett in Buchstaben und Zahlen, wie auch immer...
Ich bin für jede(n) Idee/Ansatz dankbar! :)

Gruß in die Runde

  

Betrifft: AW: Zellen speziell umbenennen von: Ru
Geschrieben am: 31.08.2014 01:44:23

Hallo,

ich hoffe ich habe dich richtig verstanden.
Du kannst eine Variable setzen, die in dem String enthalten ist und hochzählt.
Die so neuen Strings kannst du dann wieder in Zellen schreiben:

Dim l as Integer ' Definiert Variable l als Integer
l = 20 ' Setzt Anfangslänge deiner Schraube auf 20 fest
For i = 1 to 10 'Beginnt Schleife - soviele Schrittweitenerhöhungen wie du brauchst
Cells(i,1)= ("Hex_Head_m8x" & l & "_8_8") ' Schribt in Zelle A1 bis A5 deinen "Text"
l = l + 5 ' Und zählt dabei deine Schraubenlänge um die Schrittweite (hier 5) hoch
Next i

Willst du nun die Schrtittweite ändern ohne jedesmal in deinem Makkro rumzuschreiben kannst du die Schrittweite in einer Zelle (Beispielsweise E1) bennen:

Dim l as Integer
Dim sw as Integer
l = 20
sw = Cells(1,5)
For i = 1 to 10
Cells(i,1)= ("Hex_Head_m8x" & l & "_8_8")
l = l + sw
Next i

Ich hoffe ich konnte dir helfen.


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen speziell umbenennen"