Clever-Excel-Forum

Normale Version: Makro läuft nach anderer Prozedur nicht mehr
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Oder in VBA:

Code:
Sub M_snb()
  With Tabelle3.Cells(1).CurrentRegion.Columns(7)
    .Replace "CN", "", 2
    .Replace "MX", "", 2
    .Replace "PHEV", "", 2
  End With
End Sub

26865

(10.02.2023, 13:52)Gast 123 schrieb: [ -> ]Range(.Cells(9, 7), .Cells(i, 7))
Hallo Gast 123,

Diese Schreibweise ist tatsächlich syntaktisch korrekt und eindeutig.

Range() erbt die Eltern der in Klammern aufgeführten Cells bzw. Range-Objekte. Es ist aber auch nicht schädlich, die Eltern auch vor Range zu setzen. Sie müssen dann aber mit denen in der Klammer übereinstimmen.
Hallo

Sorry, das habe ich übersehen! Die Schreibweise ist mir völlig neu. Was dazu gelernt.
Mmmh, dann bleibt offen warum das Makro versagt???

Kann der Frager bitte mal eine Beispieldatei hochladen, mit anonymen Daten. Uns reichen 10 Zeilen.
Dann könnten wir direkt am Objekt mal testen was das für ein seltsames Phaenomen ist.

mfg Gast 123
Hallöchen,

nochmal,

Tabelle3.Range(Cells(9, 7), Cells(i, 7))

funktioniert dann, wenn man bereits auf Tabelle3 ist. Wenn nicht, führt das zu einer Fehlermeldung.
Wenn sicher ist, dass man auf Tabelle3 ist, kann man es also weglassen und wenn nicht, sollte man es korrekt programmieren.

Gehe einfach mal auf ein anderes Blatt und probiere diesen code:

MsgBox Tabelle3.Range(Cells(9, 7), Cells(10, 7)).Address


das wäre doppelt gemoppelt,
With Tabelle3
i = .Cells(Tabelle3.Rows.Count, 5).End(xlUp).Row

es reicht
With Tabelle3
i = .Cells(.Rows.Count, 5).End(xlUp).Row

(und auch hier kann man den Punkt vor Rows weglassen)

zum anderen, hast Du mal geprüft, wie groß der Wert von i ist?
Hallo Gast123,

über die Korrektheit meines Vorschlages brauchen wir uns gar keine Gedanken machen, da der TE ihn nicht probiert hat und auf seinem fehlerhaften Code (mit unvollständiger Referenzierung) beharrt, wie in #7 ersichtlich ist. Wink

Gruß Uwe
Moin,

zu Beachten ist auch, dass -wie bei .Find()- die Parameter Lookin und Lookat persistent sind. Wenn die durch die Userform geändert werden, würde das den Folgefehler erklären.

Viele Grüße
derHöpp
19 wenn man Parameter zählen und sich magische Zahlen merken will, dann hätte man sehen können, dass eine Lösung schon da war ...
Hallo beisammen,


vielen Dank vorab für das Interesse an meinem Problem. Ich habe das Tool nun in abgespeckter Form hochgeladen. 

Wenn man das Makro "Derivate" durchlaufen lässt, wird es in Tabelle3 (Vergaben), in Spalte G alle Kürzel entsprechend ihrer zugeordneten Zeiten sortieren. Alle Störzeichen wie (,, ., /, usw und unbekannte Kürzel entfernt (Kürzel <>3 or. 8 Zeichen)
Dies funktioniert nur so lange, wie ich das Formular "VUanlegen" nicht durchlaufen lassen habe. Wenn man hier eine Nummer in die erste Textbox eingibt, die Schaltfläche betätigt und einen Wert aus der Listbox1 wählt, kann man eine weiter Zeile mit Daten am Ende von Tabelle3 hinzufügen. Ab diesen Zeitpunkt werden die "Replace" Befehle wie oben gewünscht nicht mehr ausgeführt. Daher werden alle Kürzel die mit einem Sonderzeichen verbunden sind nicht erkannt und gelöscht (Sub derivateberein2()). Das Problem verschwindet erst wieder, wenn ich die Arbeitsmappe schließe und öffne. 

Besten Dank für eure Unterstützung.

Gruß

Andreas
Warum hast du meinen Vorschlag nicht getestet ???

Eine Datei mit Verbundenen Zellen ignoriere ich.
Wenn Ästetik wichtiger ist als Funktionalität sollte man Papier bevorzügen.

Die Lösung has du ebenso übesehen als den Falsche Code.
Seiten: 1 2 3