Informationen und Beispiele zum Thema InputBox | |
---|---|
![]() |
InputBox-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Syntaxfrage zu Replace
von: Jörg-HH
Geschrieben am: 25.07.2012 20:28:02
Hallo zusammen
mit dem kleinen Schnipsel hier wollte ich Namen ändern, wenn es denn zuviele sind für Handarbeit. Warum wird die Replace-Zeile rot bemeckert?
Sub NamenÄndern() Dim nm As Name Dim nmAlt As Name Dim nmNeu As Name Application.ScreenUpdating = False Application.Calculation = xlCalculationManual nmAlt = InputBox("?", "Alter Name oder Namensteil") nmNeu = InputBox("?", "Neuer Name oder Namensteil") If Len(nmAlt) <> Len(nmNeu) Then MsgBox "bubu" Else For Each nm In ActiveWorkbook.Names If Left(nm, Len(nmAlt)) = nmAlt Then Application.WorksheetFunction.Replace(nmalt, 1, len(nmalt), nmneu) End If Next nm End If Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Betrifft: AW: Syntaxfrage zu Replace
von: Gerd L
Geschrieben am: 25.07.2012 20:43:51
Hallo Jörg,
ungetestet.
Sub NamenÄndern() Dim nm As Name Dim nmAlt As Name Dim nmNeu As Name nmAlt = InputBox("?", "Alter Name oder Namensteil") nmNeu = InputBox("?", "Neuer Name oder Namensteil") If Len(nmAlt) <> Len(nmNeu) Then MsgBox "bubu" Else For Each nm In ActiveWorkbook.Names nm.Name = Replace(nm.Name, nmAlt, nmNeu) End If Next nm End If End SubPS.: Beim Ab- u. Einschalten der "Applications" bist du etwas verrutscht.
Betrifft: nicht ganz
von: Jörg-HH
Geschrieben am: 25.07.2012 20:51:17
Hi Gerd
stimmt mit den Applications - da hätte ich mich wieder totgesucht :-)
das andre geht noch nicht so - ich will ja nicht ganze Namen ersetzen, sondern Teile davon...
Jörg
Betrifft: AW: Neuer Versuch - Neues Glück
von: Gerd L
Geschrieben am: 25.07.2012 21:02:32
Hi Jörg,
angetestet, so wurde bei mir aus dem Namen JörgMM dann JörgHH.
Sub NamenÄndern() Dim nm As Name Dim nmAlt As String Dim nmNeu As String nmAlt = InputBox("?", "Alter Name oder Namensteil") nmNeu = InputBox("?", "Neuer Name oder Namensteil") If Len(nmAlt) <> Len(nmNeu) Then MsgBox "bubu" Else For Each nm In ActiveWorkbook.Names nm.Name = Replace(nm.Name, nmAlt, nmNeu) Next nm End If End SubGruß Gerd
Betrifft: :-) gleiches Problem
von: Jörg-HH
Geschrieben am: 25.07.2012 21:10:31
ich möchte nicht einen Namen durch einen anderen ersetzen, sondern Teile davon
ich hab viele Namen mit Indizes: Meier11, Meier12, Meier13... Meier21, Meier22, Meier23...
Da möchte ich jetzt Meier durch Muhkuh ersetzen - die Indizes sollen aber erhalten bleiben
:-)
Betrifft: Replace ist eine Fkt, da muss links davon ...
von: Luc:-?
Geschrieben am: 25.07.2012 22:05:09
…auch was stehen, Jörg,
mit = dazwischen! ;->
Gruß Luc :-?
Betrifft: tja, Luc - abschreiben müßte man können... :-)
von: Jörg-HH
Geschrieben am: 25.07.2012 23:12:52
hatte das Beispiel aus der Hilfe als Vorlage genommen - da steht auch was von Gleichheitszeichen
jetzt sieht das so aus - kein Fehler, aber macht auch keine Änderung:
Sub NamenÄndern() 'ändert Bereichsnamen Dim nm As Name Dim nmAlt As String Dim nmNeu As String Application.ScreenUpdating = False Application.Calculation = xlCalculationManual nmAlt = InputBox("Neuer Name oder Namensteil", "Namen ändern") nmNeu = InputBox("Neuer Name oder Namensteil", "Namen ändern") If Len(nmAlt) <> Len(nmNeu) Then MsgBox "bubu" For Each nm In ActiveWorkbook.Names If Left(nm, Len(nmAlt)) = nmAlt Then nm.Name = Application.WorksheetFunction.Replace(nmAlt, 1, Len(nmAlt), nmNeu) End If Next nm Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
Betrifft: AW: Syntaxfrage zu Replace
von: Josef Ehrensberger
Geschrieben am: 25.07.2012 23:24:41
Betrifft: nebenbei, wozu braucht man so viele Namen? o.T.
von: Josef Ehrensberger
Geschrieben am: 25.07.2012 23:26:59
Betrifft: klappt...
von: Jörg-HH
Geschrieben am: 26.07.2012 00:20:40
danke an alle...
so viele Namen...? 25 Checkboxen aus 5 Gruppen zu je 5 Sorten regeln diverse Ein- und Ausblendungen in zehn verschiedenen Blättern. Zusätzlich muß ich noch die Boxen gruppenweise disablen, wenn bestimmte Einstellungen dies wünschen.
Damit bin ich am einfachsten durch, wenn ich in den Blättern Lokalnamen mit Indizes verteile, die mit den Checkbox-Namen samt Indizes korrespondieren. Zumindest fällt mir kein sinnvoller anderer Weg ein.
Grüße - Jörg