Ich suche schon den ganzen Tag nach einer passenden VBA Programmierung, für meinen Fall.
Es gibt genügend Beiträge dazu, leider schaffe ich es nicht die Programmierung auf meine Situation anzupassen.
Vielleicht könnt Ihr Helfen.
Tabelle "ABL"
da ist eine Eingabemaske vorhanden mit 3 Makros
Makro 1 "Suchen"
Public Sub KundensucheABL()
Dim oBlatt As Worksheet
Set oBlatt = ThisWorkbook.Worksheets("ABL") 'Tabellennamen gg. anpassen
With oBlatt
.Range("C13").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;2;FALSCH);)"
.Range("C15").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;3;FALSCH);)"
.Range("C17").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;4;FALSCH);)"
.Range("C19").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;5;FALSCH);)"
.Range("C21").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;6;FALSCH);)"
.Range("C23").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;7;FALSCH);)"
.Range("C25").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;15;FALSCH);)"
.Range("C27").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;16;FALSCH);)"
.Range("F13").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;8;FALSCH);)"
.Range("F15").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;9;FALSCH);)"
.Range("F17").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;10;FALSCH);)"
.Range("F19").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;11;FALSCH);)"
.Range("F21").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;12;FALSCH);)"
.Range("F23").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;13;FALSCH);)"
.Range("F25").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;14;FALSCH);)"
End With
Set oBlatt = Nothing
End Sub
Das funktioniert und blendet Fehler "#NV" aus.
in "D9" wird eine Nummer eingegeben und alle Daten aus "Kundenliste" werden übernommen.
Makro 2 (bearbeiten)
da habe ich noch keine Ahnung wie ich das programmieren soll um Daten anhand der Nummer in "D9" in Tabelle "ABL" abzurufen und wenn ich Daten ändere die dann so zu Speichern dass es keinen neuen Eintrag gibt.
Makro 3 (Neuer Eintrag)
da habe ich bis jetzt nur das aufgenommene Makro plus die Kopie vom Makro 1 (suche) um in Tabelle "ABL" wieder bei Eingabe in "D9" Daten abzurufen.
Sub neuerKunde()
'
' nuerKunde Makro
'
'
Sheets("Kundenliste").Select
Rows("13:13").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A14").Select
Sheets("ABL").Select
Range("D9").Select
Selection.Copy
Sheets("Kundenliste").Select
Range("A13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("B13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C15").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("C13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C17").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("D13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("E13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C21").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("F13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C23").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("G13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("F13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("H13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("F15").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("I13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B34").Select
Sheets("ABL").Select
Range("F17").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("J13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("F19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("K13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("F21").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("L13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("F23").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
ActiveWindow.SmallScroll ToRight:=4
Range("M13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("F25").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("N13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C25").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("O13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Range("C27").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Kundenliste").Select
Range("P13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ABL").Select
Dim oBlatt As Worksheet
Set oBlatt = ThisWorkbook.Worksheets("ABL") 'Tabellennamen gg. anpassen
With oBlatt
.Range("C13").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;2;FALSCH);)"
.Range("C15").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;3;FALSCH);)"
.Range("C17").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;4;FALSCH);)"
.Range("C19").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;5;FALSCH);)"
.Range("C21").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;6;FALSCH);)"
.Range("C23").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;7;FALSCH);)"
.Range("C25").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;15;FALSCH);)"
.Range("C27").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;16;FALSCH);)"
.Range("F13").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;8;FALSCH);)"
.Range("F15").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;9;FALSCH);)"
.Range("F17").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;10;FALSCH);)"
.Range("F19").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;11;FALSCH);)"
.Range("F21").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;12;FALSCH);)"
.Range("F23").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;13;FALSCH);)"
.Range("F25").FormulaLocal = "=WENNNV(SVERWEIS(D9;Kundenliste!A5:p929;14;FALSCH);)"
End With
Set oBlatt = Nothing
End Sub
Es sollte eine Prüfung erfolgen,
die prüft ob die eingegebene Nummer in Tabelle "ABL" "D9" schon in Tabelle "Kundenliste" Spalte 1 vorhanden ist.
ist die Nummer vorhanden, dann sollte eine MsgBox erscheinen mit der Meldung "Kund schon vorhanden"
Butten "Schließen", Ende.
ist die Nummer nicht vorhanden, soll Excel alles kopieren und am Ende eine MsgBox erzeugen mit dem Eintrag "Kunde erfolgreich übernommen"
Butten "Okay"
Vielen Dank für eure Hilfe
Gruß
Stefan5