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.

Zeile kopieren und einfügen, Positionierung stimmt nicht.
#1
Hallo Leute,

in einem Tabellenblatt muss ich eine Zeile einfügen. Soweit so gut. Hierzu verwende ich .Insert Shift:=xlDown.

'Begin: Neue Zeile in Tabellenblatt Gewährleistung anlegen
    Sheets("Gewährleistung").Activate
    With Range("B11").Offset(iMax, 0)
        'Zeile 11 kopieren
        Range("B11:O11").Copy
        'Zeile 11 einfügen
        .Insert Shift:=xlDown
        'Firmennummer eintragen
        .Value = iMax + 1
        'in den kopierten Formeln "Firma 1" durch "Firma imax+1" ersetzen
        With Application.Intersect(Range("B11:O11").EntireColumn, .EntireRow)
            .Replace What:="Firma 1", Replacement:="Firma " & iMax + 1, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeTop).Weight = xlThin
            'Kopiermodus ausschalten
            Application.CutCopyMode = False
        End With
    End With
    'End: Neue Zeile in Tabellenblatt Gewährleistung anlegen

Bis dahin geht auch Alles gut. Wenn ich jedoch die neue Firmennummer eintrage dann liegt der Pointer nicht mehr auf der eingefügten Zeile sondern 1.Zeile darunter.
Dies führt dazu,  dass die nachfolgenden Befehle nicht ausgeführt werden, da diese Zellen leer sind.

Ich hoffe jemand von euch kann mir hier weiterhelfen. In einem anderen Teil der Anwendung habe ich dieselbe Funktionalität - ohne shiften - Spaltenbezogen abgebildet. Da funktioniert es einwandfrei.

VG Michael
Antworten Top
#2
Hallo Michael,

wenn das Verhalten von Excel so nachvollziehbar ist, kann man doch im Code gegensteuern, indem man die richtige Zeile nimmt? Du kannst ja ab dem Punkt mit einem weiteren Offset auch eins zurück gehen (Offset(-1,...).
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo Andre,

irgendwie begreife ich das mit der Positionierung nicht richtig.

innerhalb der obigen Funktion habe ich nun folgende Möglichkeiten ausprobiert.

'Firmennummer eintragen
.Offset(-1, 0) = .Value = iMax + 1

Ergebnis ist zwar in der richtigen Zeile Eintrag ist aber 'Falsch'

'Firmennummer eintragen
.Value = iMax + 1
.Offset(-1, 0) = .Value

Der Eintrag von von iMax + 1 erfolgt sowohl in der richtigen als auch in der
darunterliegenden Zeile.

VG Michael
Antworten Top
#4
Hallo Michael,

erst mal zum FALSCH.
.Offset(-1, 0) = .Value = iMax + 1

Das ist das Ergebnis dieser "Berechnung": .Value = iMax + 1
Es wird hier geprüft, ob der Zellinhalt gleich imax+1 ist. Und das wäre entweder FALSCH oder WAHR

Korrekt wäre
.Offset(-1, 0) .Value = iMax + 1

Hier füllst Du zwei Zellen, hast Du ja schon beschrieben.

.Value = iMax + 1
.Offset(-1, 0) = .Value

Einmal ist es die bei With programmierte und beim zweiten mal die von dort ausgehend offsetierte.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Icepic
Antworten Top
#5
Hallo Andre,

jetzt habe ich auch das mit dem Offset verstanden.

Nochmals vielen Dank.

Gruß aus HH

Michael
Antworten Top


Gehe zu:


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