VBA Code für EAN Abgleich

Moderator: ModerationP

VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 22. Okt 2021, 10:41

Hallo,
ich habe eine Tabellenblatt mit ganz vielen Artikel ca 4000. In Spalte D steht die EAN und in Spalte E der Artikelname.
Ich möchte nun das ich die EAN eingebe in Spalte D und wenn der Artikel schon auf den 1. oder 2 Tabellenblatt vorhanden ist, das dann der Name in Spalte E erscheint.
Hab schon ein Code aber der funktioniert leider nur auf dem 1 Blatt und nciht auf dem hinzugefügten.
Hoffe es kann mir wer helfen. :-)
Mfg und Danke
Excelneuling83
 

Re: VBA Code für EAN Abgleich

Beitragvon HKindler » 22. Okt 2021, 10:52

Hi,

um dir helfen zu können, sollte man a) deinen bisherigen Code kennen und b) eine Beispieltabelle zum Testen haben. Sonst hilft nur der Hinweis: wenn dein Code in der ersten Tabelle nichts findet, dann lass ihn nochmals über die zweite laufen.

Allerdings scheint es mit deinen VBA -Kenntnissen nicht allzu weit her zu sein. Daher mein Tipp: Nimm in Spalte E eine Formel nach dem Schema =WENNFEHLER(SVERWEIS(D2;Tabelle1!A2:B500;2;0);SVERWEIS(D2;Tabelle2!A2:B1000;2;0)) oder noch besser: Kopiere Tabelle2 unterhalb von Tabelle1.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6437
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: VBA Code für EAN Abgleich

Beitragvon Gast » 22. Okt 2021, 11:14

Hallo
das ist mein bisheriger Code :-)
Ich habe unten eine Tabelle mit dem + hinzugefügt.
Die Abfrage funktioniert auch ohne Probleme in der Ersten nur in der hinzugefügten leider nicht .
Kann das 2 te Tabellenblatt nicht einfach unten anhängen da die 1 Tabelle immer weiterwächst.
Mfg und Danke

Private Sub Worksheet_Change(ByVal Target As Range)
If Not [xlEIN] Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub

'-- wenn flg true ist, Vorgang abrechen
If flg Then flg = False: Exit Sub
'-- Spalte [spScanner] auswerten
If Target.Column = [spScanner] Then Call GefundenenWert_Select(Target.Value)
'-- Spalte [spAnzahl] auswerten
If Target.Column = [spAnzahl] Then Call GeheInZelle(Target.Row, [spScanner])

If Target.Column = 4 And Target.Value <> "" Then
Dim code: code = Target.Value
Dim v: v = Sheets(1).Range("Tabelle1")
Dim v2: v2 = Sheets(1).Range(Cells(5, 4), Cells(Target.Row - 1, 5))

For i = 1 To UBound(v)
If v(i, 1) = code Then
Sheets(1).Cells(Target.Row, Target.Column).Offset(0, 1).Value = v(i, 2)
Exit Sub
End If
Next i

For i = 1 To UBound(v2)
If v2(i, 1) = code Then
Sheets(1).Cells(Target.Row, Target.Column).Offset(0, 1).Value = v2(i, 2)
Exit Sub
End If
Next i
End If
End Sub
Gast
 

Re: VBA Code für EAN Abgleich

Beitragvon HKindler » 22. Okt 2021, 11:49

Hi,

nochmals kurz für mich zum Verständnis:
Du hast bisher 2 Blätter. Ich nenne eines einmal "Arbeitsblatt", das ist das Blatt, in dem du rummachst und wo in Spalte D die EAN eingegeben wird und in E dann die Beschreibung automatisch kommen soll (falls vorhanden). Das zweite Blatt ist die "Datenbank". Hier sind die EANs und die zugehörigen Artikelbeschreibungen gespeichert.

Jetzt hast du ein weiteres Blatt eingefügt. Ist dieses Blatt nun eine zweite Datenbank oder ein zweites Arbeitsblatt?

Bei einem zweiten Arbeitsblatt musst du den gezeigten Code auch in dieses Blatt kopieren. Außerdem müssen auf dem Blatt die Bereiche "spScanner", "spAnzahl" definiert sein.

Bei einer zweiten Datenbank musst du den Bereich im letzten If-Block kopieren und mit Verstand einfügen. Dabei bei allen Sheets(1) die 1 durch die Nummer des neuen Blattes ersetzen. Außerdem muss es auf dem Blatt einen benannten Range geben, der "Tabelle1" heißt.

Das ist alles, was ich aus deinem Code und deiner Beschreibung ableiten kann. Um mehr zu sagen, bräuchte ich die Datei.

Übrigens scheint der, der den Code geschrieben hat, sich in VBA auszukennen. Auch wenn sein Programmierstil nicht zu allgemein anerkannten Gepflogenheiten konform ist. Frag doch den Autor des Programms um Hilfe.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6437
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: VBA Code für EAN Abgleich

Beitragvon Gast » 22. Okt 2021, 15:45

danke für die schnelle Antwort.
Ja genau es ist 1 Blatt mit Artikel und EAN das ist eine Wareneinkaufsliste. Die wird erweitert mit neuen Artikel. Datenbank ansich ist keine vorhanden.
Ich geb eine EAN ein und hab dann den Namen dazugeschrieben. Jetzt wenn ich die selbe EAN wieder eingebe dann weiss die Tabelle das der Artikel schon mal eingeben wurde und ergänzt automatisch den Namen.
Das funktioniert alles ohne Probleme, nur jetzt hab ich ein neues Arbeitsblatt hinzufügen müssen da es ein riesiger neuer Wareneinkauf ist und jetzt soll der Abgleich mit der kompletten Mappe stattfinden (Blatt 1 und 2) das ich nicht jeden Artikel einzeln eingeben muss ins Blatt 2. Es handelt sich um DVD Namen mit EAN. Der Code wurde mir damals als Hilfe zur Verfügung gestellt. ich hatte gehofft das es vielleicht nur eine kleine Änderung ist. Da einfach nur kopieren nicht funktioniert, bekomm da immer eine Fehlermeldung.
Mfg und herzlichen Dank
Gast
 

Re: VBA Code für EAN Abgleich

Beitragvon Gast » 22. Okt 2021, 15:46

wie kann ich die Tabelle hochladen ?
Gast
 

Re: VBA Code für EAN Abgleich

Beitragvon steve1da » 22. Okt 2021, 15:58

Du musst dich hier registrieren dann kannst du eine Tabelle an deine Antwort anhängen.
Benutzeravatar
steve1da
Moderator
 
Beiträge: 31670
Registriert: 24. Sep 2003, 10:54

Re: VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 22. Okt 2021, 16:08

Hier ist meine Datei
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Excelneuling83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 22. Okt 2021, 16:03

Re: VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 23. Okt 2021, 17:12

Hallo,
bräuchte nochmal ihre Hilfe Hab da ein Code der mit einer Suchfunktion ausgestattet ist. Funktioniert auch super.
Jetzt möchte ich das das Ergebniss also wenn ich in der Frage mit Nein bestätige ....diese Zeile in farbiger Schrift und FETT gemacht wird und das auch so bleibt.
Wer kann mir dabei helfen? :-)
Vielen Dank im Vorraus

Option Explicit
Global SSearch As String

Public Sub SearchAllTables()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean

GWeiter = False
GFound = False
anf:
SSearch = InputBox("Suchen nach:", "Suche nach Begriff", SSearch)

If SSearch = "" Then
End
End If
weiter:
For Each ws In Worksheets
'ws.Select
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
firstAddress = c.Address
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
Do
Set c = .FindNext(c)


secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress <> firstAddress And c.Address <> firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
Next ws

ende:

If GFound = False Then
If MsgBox("Suchwert nicht gefunden ! Neue Suche ?", vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Sie haben alle Tabellenblätter durchsucht ! Soll die Suche neu gestartet werden ?", vbInformation + vbYesNo) = vbYes Then
GoTo weiter
End If
End If
End If

End Sub
Excelneuling83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 22. Okt 2021, 16:03

Re: VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 23. Okt 2021, 21:17

Danke hab selbst eine Lösung gefunden.
Brauch nur noch eine letzte Hilfe, wie kann ich in einer Dropbox (Auswahl box) Monate einfügen und die dann auswählen und ein Monat zb. Januar alle VK Preise mit Datum in eine neues Blatt schreiben lassen ?
Danke
Gruß Steffi
Excelneuling83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 22. Okt 2021, 16:03

Re: VBA Code für EAN Abgleich

Beitragvon snb » 24. Okt 2021, 10:54

Autofilter.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8840
Registriert: 25. Sep 2014, 16:37

Re: VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 25. Okt 2021, 13:44

Danke für die Info.
Ich hätte aber gerne das es mit der Auswahlliste funktioniert.
Mfg Steffi
Excelneuling83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 22. Okt 2021, 16:03

Re: VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 08. Nov 2021, 08:26

Hallo
was muss ich ändern das er Code auf allen Blätter funktioniert? Das Suchen funktioniert auf allen. Aber die automatische Ergänzung des Namen bei vorhandener EAN leider nur auf dem 1. Blatt.
Bitte um HIlfe
Mfg Steffi
Excelneuling83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 22. Okt 2021, 16:03

Re: VBA Code für EAN Abgleich

Beitragvon Excelneuling83 » 08. Nov 2021, 15:35

keiner da der mir helfen kann ? .-(
Mfg Steffi
Excelneuling83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 22. Okt 2021, 16:03

Re: VBA Code für EAN Abgleich

Beitragvon Flotter Feger » 08. Nov 2021, 16:07

Hallo,
Danke hab selbst eine Lösung gefunden.
Keiner weiß welche ... tut man sich hart etwas zu verbessern, was man nicht kennt.
Schon mal darüber nachgedacht ?

was muss ich ändern das er Code auf allen Blätter funktioniert?
Den Code in das korrespondierende Event in 'DieseArbeitsmappe' schreiben, anstatt in das 'Einzel'-Event im Tabellen-Modul.
Als Beispiel: WorkSheet_Chance() --> WorkBook_SheetChance()

Weshalb du den Autofilter nicht verwenden willst, kann ich nicht nachvollziehen. Ist doch erst mal eine sehr komfortable Zwischenlösung ... und eine Einfache und Schnelle dazu.
Wenn du dich besser auskennst in VBA, kannst du das immer noch ändern. Ich habe nicht aufgepasst, welche Excel-Version du hast ... eventuell könnte es in 365/2021 schon FILTER() richten.
VG Sabina

Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Bei mir läuft Win 7 32-Bit - Office 2016 Pro Plus 32-Bit, Office 2019 Pro Plus 32-Bit und Office 2021 Pro Plus 32-Bit
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3327
Registriert: 24. Okt 2016, 16:40

Nächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste