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.

VBA Code Anpassung resp. Ergänzung
#1
Exclamation 
Guten Morgen miteinander

In folgenden Datei habe ich eine Probleme:

Das Blatt "Archiv" soll zwei weiteren Spalten haben (siehe Bsp-Datei angehängt) nämlich "Kundenname" sowie "Kundennummer", um beim Auslieferung auch nach weiteren Kundendaten Filtern zu können.
Die Daten dazu sollte die VBA vom "Ausgang" K17" - Kundenname und vom "K20" - Kundennummer holen. ACHTUNG: Die 2 extra-Spalten habe bereits eingefügt, somit verschiebt sich automatisch alles bereits (Anpassung natürlich erwünscht, sonst funktioniert nicht ordnungsgemäss). Als weiteres ist eine zusätzliche "Filter-Fenster" angedacht. Wie gehen das?

Kann jemand da weiterhelfen? Habe versucht, irgendwo habe ich aber die Faden verloren..


ACHTUNG: Die 2 extra-Spalten habe bereits eingefügt, somit verschiebt sich automatisch alles bereits (Anpassung natürlich erwünscht, sonst funktioniert nicht ordnungsgemäss)

Code wie folgt:

Sub Archive()


Dim sht As Worksheet
Dim LastRow As Long
Dim KitNummer As String


Set sht = Worksheets("Archiv")
AusgangLastRow = Worksheets("Ausgang").Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
ArchiveLastRow = sht.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
'MsgBox LastRow
ArchiveFirstRow = ArchiveLastRow + 1

ArchiveRowIndex = ArchiveFirstRow

'Worksheets("Archiv").Range("A2:K120").Clear

KitNummer = "001"
For i = 3 To AusgangLastRow
If Worksheets("Ausgang").Range("A" & i).value = "" And Worksheets("Ausgang").Range("H" & i).value = "" Then Exit For
Worksheets("Archiv").Range("A" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("K8").value & " - " & Worksheets("Ausgang").Range("K11").value

If Worksheets("Ausgang").Range("H" & i).value <> KitNummer And Worksheets("Ausgang").Range("H" & i).value <> "" Then

    KitNummer = Worksheets("Ausgang").Range("H" & i).value
    Worksheets("Archiv").Range("B" & ArchiveRowIndex).value = KitNummer
   
Else
Worksheets("Archiv").Range("B" & ArchiveRowIndex).value = KitNummer
End If

Worksheets("Archiv").Range("B" & ArchiveRowIndex).value = KitNummer
Worksheets("Archiv").Range("C" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("A" & i).value
Worksheets("Archiv").Range("D" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("B" & i).value
Worksheets("Archiv").Range("E" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("C" & i).value
Worksheets("Archiv").Range("F" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("D" & i).value
Worksheets("Archiv").Range("G" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("E" & i).value
Worksheets("Archiv").Range("H" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("F" & i).value
Worksheets("Archiv").Range("I" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("G" & i).value
'Worksheets("Archiv").Range("J" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("K8").value
ArchiveRowIndex = ArchiveRowIndex + 1

Debug.Print (KitNummer)
Next i

End Sub


DANKE für EURE Hilfe und einen schönen Tag!


Angehängte Dateien
.xlsm   Clever-Excel_BSP-Datei_Dahu.xlsm (Größe: 640,43 KB / Downloads: 6)
Antwortento top
#2
Hallöchen,

ich habe Deine Datei erst mal nicht angeschaut, nur den Code. In Deinem Code holst Du nix aus K17 und K20. In zwei zeilen hast Du feste zelladressen programmiert, eine davon ist

Worksheets("Archiv").Range("A" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("K8").value & " - " & Worksheets("Ausgang").Range("K11").value

die andere ist auskommentiert ...
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Lieber schauan

Besten Dank für deine Antwort.

Vielleicht habe ich mich etwas falsch ausgedruckt, entschuldigung. Im Datei ist sichtbar, dass die zwei "extra-Spalten" eingefügt worden, jedoch noch nichts angepasst gehabt. Meine Frage geht generell, um einen Lösungsvorschlag resp. Code-"Ergänzung/Anpassung". Mir ist es bekannt, dass bereits aus K17 und K20 nichts geholt wird, das wäre ja noch ein Zusatzoption.

Danke im Voraus
Antwortento top
#4
Hallöchen,

in Deinem Code füllst Du doch jede Spalte, da steht doch

Worksheets("Archiv").Range("B" & ArchiveRowIndex).value = KitNummer
Worksheets("Archiv").Range("C" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("A" & i).value
Worksheets("Archiv").Range("D" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("B" & i).value
Worksheets("Archiv").Range("E" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("C" & i).value
Worksheets("Archiv").Range("F" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("D" & i).value
Worksheets("Archiv").Range("G" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("E" & i).value
Worksheets("Archiv").Range("H" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("F" & i).value
Worksheets("Archiv").Range("I" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("G" & i).value
'Worksheets("Archiv").Range("J" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("K8").value

Wenn Du nun vorne was eingefügt hast, musst Du die Spaltenbezeichnung entsprechend weiter rücken. Aus B wird dann D usw., das sollte doch recht einfach sein.

Und auch die Übernahme aus festen Zellen hast Du schon dabei, ich sagte es bereits.
Du hast
'Worksheets("Archiv").Range("J" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("K8").value

Das könnte dann so umgesetzt werden

Worksheets("Archiv").Range("A" & ArchiveRowIndex).value = Worksheets("Ausgang").Range("K17").value
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


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