Hallo iamye,
ich gehe davon aus, dass du den Code in einem allgemeinen Modul abgelegt hast (falls nicht: das ist der richtige Platz dafür!).
Kommentare werden nicht vom Computer interpretiert, sie sind ausschließlich dafür da, damit wir Menschen uns Hinweise in den Code schreiben können, die uns in irgendeiner Form jetzt oder später helfen.
Ich habe absichtlich so viele Kommentare in den Code geschrieben, weil ich den Eindruck habe, dass du sehr unerfahren mit VBA bist. So wollte ich dir erleichtern zu verstehen, was der Code / die einzelne Codezeile bewirkt, und dir damit helfen, den Code selbst an deine Bedürfnisse anzupassen.
Also: ja, natürlich du bist herzlich eingeladen, alles an dem Code oder seinen Kommentaren zu verändern.
Löscht du alle Kommentare oder fügst du welche hinzu, ändert sich nichts am Verhalten bei der Makroausführung.
Änderst du etwas am Code - ändert sich natürlich das Ergebnis des Makros (klar
).
Ich habe gerade kein Excel zur Verfügung, konnte also nicht testen:
Immer wenn du etwas in Spalte F veränderst, wird in Spalte A der entsprechenden Zeile gelöscht.
Grüße, Ulrich
ich gehe davon aus, dass du den Code in einem allgemeinen Modul abgelegt hast (falls nicht: das ist der richtige Platz dafür!).
Zitat:Letzte Frage.., ist es möglich die Sätze im Makro zu ändern ?Ich nehme an, du meinst die 'Kommentare'. Alles, was im VisualBasicEditor grün angezeigt wird, sind Kommentare. Sie sind dadurch gekennzeichnet, dass sie rechts vom Apostroph (') stehen - oder anders ausgedrückt: nach einem Apostroph kommt in dieser Zeile nur noch ein Kommentar.
Kommentare werden nicht vom Computer interpretiert, sie sind ausschließlich dafür da, damit wir Menschen uns Hinweise in den Code schreiben können, die uns in irgendeiner Form jetzt oder später helfen.
Ich habe absichtlich so viele Kommentare in den Code geschrieben, weil ich den Eindruck habe, dass du sehr unerfahren mit VBA bist. So wollte ich dir erleichtern zu verstehen, was der Code / die einzelne Codezeile bewirkt, und dir damit helfen, den Code selbst an deine Bedürfnisse anzupassen.
Also: ja, natürlich du bist herzlich eingeladen, alles an dem Code oder seinen Kommentaren zu verändern.
Löscht du alle Kommentare oder fügst du welche hinzu, ändert sich nichts am Verhalten bei der Makroausführung.
Änderst du etwas am Code - ändert sich natürlich das Ergebnis des Makros (klar

Ich habe gerade kein Excel zur Verfügung, konnte also nicht testen:
Code:
Sub nameSelbstAnpassen()
Dim lngLetzte2017 As Long, lngLetzte As Long, lZeile As Long, rngM As Range
'Wenn der Wert aus Zeile M (Sheet 2017) nicht in Zeile M (Sheet Update) auftaucht dann "hier im Beispiel Zeile 13" aus Sheet 2017 löschen.
With Sheets("2017")
'letzte benutzte Zeile in Spalte M finden
For lZeile = .UsedRange.Rows.Count + .UsedRange.Row To 1 Step -1
If Not IsEmpty(.Cells(lZeile, 13)) Then
lngLetzte2017 = lZeile
Exit For
End If
Next
For lZeile = lngLetzte2017 To 3 Step -1 ' Schleife über alle Zeilen
If Not IsEmpty(.Cells(lZeile, 13)) Then ' Wenn Zelle in Spalte M nicht leer
set rngM = sheets("update").range("M:M").find(.cells(lzeile,13))
if rngm is nothing then
.Rows(lZeile).Delete ' Zeile löschen
else
.cells(lzeile,12).value=sheets("update").cells(rngm.row,12).value ' Wert aus Spalte L übernehmen
endif
End If
Next
End With
' insert / update
With Sheets("update")
lngLetzte = .UsedRange.Rows.Count + .UsedRange.Row - 1 ' letzte Zeile im Tabellenblatt "update"
For lZeile = 1 To lngLetzte ' Schleife über alle Zeilen
If Not IsEmpty(.Cells(lZeile, 13)) Then ' Wenn Zelle in Spalte M nicht leer
Set rngM = Sheets("2017").Range("M:M").Find(.Cells(lZeile, 13)) ' Nach Zellinhalt in '2017'!M:M suchen
If rngM Is Nothing Then ' Wenn nichts gefunden wurde
'Wenn der Wert aus Zeile M (Sheet Update) nicht in Zelle M (Sheet 2017) autaucht dann gesamte Zeilen-Linie aus (Sheet Update) in Sheet 2017 einfügen.
lngLetzte2017 = lngLetzte2017 + 1
Sheets("2017").Rows(lngLetzte2017).Insert , CopyOrigin:=xlFormatFromLeftOrAbove ' Zeile einfügen
Sheets("2017").Range("A" & lngLetzte2017 & ":N" & lngLetzte2017).Value = .Range("A" & lZeile & ":N" & lZeile).Value 'Werte kopieren
Else
'Wenn der Wert aus Zeile M (Sheet Update) in Zeile M (Sheet 2017) besteht, dann < Wert aus Zeile F (Sheet Update) in (Sheet 2017) übernehmen.
rngM.Offset(0, -7).Value = .Cells(lZeile, 6).Value ' Wert aus Spalte F übernehmen
End If
End If
Next
End With
End Sub
Zitat:Wenn der Wert aus Spalte F (Seite - 2017) ändert, dann Zelle (aus Spalte A, Seite - 2017) löschen.Dazu muss man ein "spezielles Makro" schreiben, das automatisch ausgeführt wird. Es muss in das Codefenster des Tabellenblattes "2017", sonst funktioniert es nicht.
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then 'nur bei Änderung in Spalte F
range(cells(target.row,1), cells(target.row+target.rows.count-1,1)).clearcontents
End If
End Sub
Zitat:-> envoyé // wenn dieses wort ausgewählt ist soll die Reihe A3 - N3 zb. gelb markiert werden.Das könntest du doch bestimmt gut über eine benutzerdefinierte Formatierung erledigen. Meine Empfehlng: wenn du kaum Erfahrung mit VBA hast, dann benutze es zunächst sparsam - vor allem wenig Dinge, die automatisch passieren.
Grüße, Ulrich