Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kundennummer in andererm Tabellenblatt einfühgen

Forumthread: Kundennummer in andererm Tabellenblatt einfühgen

Kundennummer in andererm Tabellenblatt einfühgen
04.06.2005 00:15:31
gregor
Hallo,
ich habe ein Tabbelenblatt mit Kunden (Kundenliste)
nun soll in einem anderen Tabellenblatt die Nummer
eingetragen werden, so bald eine bestimmte Postleitzahl
oder Ort in ein Feld eingetragen wird.
Also:
Eingabe Tabellenblatt "Aktion"
in Zelle A5 "PLZ"; A6 "Ort"; A7 "Strasse"; ...
nun sollen diese Daten mit den vorhandenen aus Liste,
Tabellenblatt "Kunden-Liste" verglichen und bei Übereinstimmung
in Tabellenblatt "Aktion", die Kundennummer aus der "Kunden-Liste"
in Zelle A9 "Aktion" eingetragen werden.
Ziel:
die neuen Daten-Eingaben der Tabelle "Aktion" sollten
automatisch mit zugehörigen Kundennummern versehen werden.

Ich würde mich über einen Tipp freuen
Gregor
Level: Excel gut-VBA mittel
ich kenne ein paar VBA Funktionen und habe schon ein paar VBA
gemacht, also weder nein noch gut, mittel eben.
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kundennummer in andererm Tabellenblatt einfühgen
04.06.2005 14:00:08
Heiko S.
Hallo Gregor,
ich würde das über Autofilter und VBA lösen.
guckst du hier: https://www.herber.de/bbs/user/23625.xls
Darin habe ich mal ein kleines Beispiel gemacht.
Es kann auch dann suchen wenn nicht alle Felder zum suchen ausgefüllt sind, gibt dann aber wenn mehr als ein Kunde ausgefiltert wird ne Fehlermeldung aus.
Probiere einfach mal ein bisschen mit rum, wenn es das ist was du suchst mußt du es halt auf deine Datei anpassen. ( Sheetnamen, Spalten ... )
Gruß Heiko
PS: Rückmeldung wäre nett
Anzeige
AW: Kundennummer in andererm Tabellenblatt einfühgen
04.06.2005 23:29:39
gregor
danke,
das sieht schon gut aus,
doch noch nicht so ganz das was ich suche,
die suche beschränkt sich auf eine,
ich möchte Zeilen und am Ende jeder Zeile die Kundennummer automatisch,

ich kann das auch noch so vormulieren
"eine Tabelle mit Kunden oder Artikeln
eine Tabelle in der die Adressen oder Artikel eingebeben werden,
dann soll da automatisch am Ende jeder Zeile eine Zelle
ausgefüllt werden mit der zugehörigen Kundennummer oder Artikelnummer aus der liste,
so das dann eine individuelle Liste mit Artikeln bzw Kunden entsteht"
Nun ich werd mal sehen ob ich was mit Deiner Vorlage basteln kann,
Danke
Anzeige
AW: Kundennummer in andererm Tabellenblatt einfühgen
05.06.2005 11:58:10
gregor
Hallo Heiko,
mir ist ein Fehler in dem Script aufgefallen,
wenn die Suchfelder alle leer sind gibt es ein Problem in Zeile 42,
auch wenn der Autofilter in Tabelle2 deaktiviert wurde, gab es Probleme,
ich habe das Problem mit einem Modul gelöst,
https://www.herber.de/bbs/user/23640.xls
"Modul" da ich die Funktion Range("A1") nicht in die Private Sub bekommen habe,
gibt es eine andere Lösung da für?
jeden falls geht jetzt auch bei ausgeschaltetem Autofilter die Suchfunktion,
Gregor
Anzeige
Automatische Zuordnung aus Liste holen
05.06.2005 12:21:41
gregor
Hallo,
ich habe hier eine Arbeit:
https://www.herber.de/bbs/user/23641.xls
schön wärs, wenn die ADM Nummer automatisch in die Zelle "I"
der jeweiligen Zeile, eingetragen würde,
dann muss nicht jedes mal gesucht werden,
wenn eine neue Zeile ausgefüllt wird.
Vielleicht gibt es noch eine Lösung da für.
Doch Danke für die Unterstützung in diesem Forum,
dadurch wurde es mir erst möglich diese Arbeit so weit zu erstellen.
Gregor
Anzeige
AW: Automatische Zuordnung aus Liste holen
05.06.2005 20:25:07
Stefan B.
Hallo Gregor,
Ich wuerde die SVERWEIS Formel benutzen (=SVERWEIS(D4,Tabelle2!$E$3:$F$22,2,FALSCH)). Die wuerde aber sicherlich besser arbeiten, wenn Du Die Kundennummer schon in der Liste haettest. Die obige Formel arbeitet jetzt nur mit der Adresse, was sicher nicht optimal ist.
Schoene Gruesse
Stefan B.
Anzeige
AW: Automatische Zuordnung aus Liste holen
05.06.2005 22:26:34
gregor
Super, danke Stefan,
das ist genau was ich benötige
Muster:

Die Datei https://www.herber.de/bbs/user/23645.xls wurde aus Datenschutzgründen gelöscht

(kann die Formel auch mehrere Argumente vergleichen,
also nicht nur PLZ, sondern dazu noch die Stasse ?)

Gregor
AW: Automatische Zuordnung aus Liste holen
07.06.2005 01:17:04
Stefan B.
Hallo Gregor,
Nicht dass ich wuesste. Da ich dass Problem aber auch des oefteren habe, mache ich immer einen kleinene Umweg. Ich arbeite dann immer mit einer Hilfsspalte, die ich dann auch ausblenden kann. Ich hab Deine Datei entsprechend angepasst. Hier der Link:
https://www.herber.de/bbs/user/23682.xls
Schoene Gruesse
Stefan B.
Anzeige
Inhalt mehrerer Zellen in einer zusammenfassen
07.06.2005 10:18:40
gregor
Hallo Stefan,
das ist ja eine feine Sache mit =C&E
ich habe schon früher überlegt wie ich den Inhalt zweier Zellen
in eine bekomme, aber dass das so einfach ist, toll
mit der Kenntniss kann ich viel machen.
Danke Dir,

Gregor
AW: Kundennummer in andererm Tabellenblatt einfühgen
06.06.2005 10:41:01
Heiko S.
Hallo Gregor,
hier eine Version die bei aus und eingeschalteten Autofiltern läuft.

Private Sub CommandButton1_Click()
Dim lngI As Long, intCounter As Integer
Dim strKundennummer As String
intCounter = 0
Application.ScreenUpdating = False
Sheets("Tabelle2").Activate
If Sheets("Tabelle2").AutoFilterMode Then Sheets("Tabelle2").AutoFilterMode = False
Sheets("Tabelle2").Columns("A:E").AutoFilter
If Sheets("Tabelle1").Range("A5") <> "" Then
Selection.AutoFilter Field:=1, Criteria1:=CStr(Sheets("Tabelle1").Range("A5"))
End If
If Sheets("Tabelle1").Range("A6") <> "" Then
Selection.AutoFilter Field:=2, Criteria1:=CStr(Sheets("Tabelle1").Range("A6"))
End If
If Sheets("Tabelle1").Range("A7") <> "" Then
Selection.AutoFilter Field:=3, Criteria1:=CStr(Sheets("Tabelle1").Range("A7"))
End If
If Sheets("Tabelle1").Range("A8") <> "" Then
Selection.AutoFilter Field:=4, Criteria1:=CStr(Sheets("Tabelle1").Range("A8"))
End If
For lngI = 2 To Sheets("Tabelle2").Range("E65536").End(xlUp).Row
If Sheets("Tabelle2").Rows(lngI).EntireRow.Hidden = False Then
intCounter = intCounter + 1
strKundennummer = Sheets("Tabelle2").Range("E" & lngI)
End If
Next lngI
If intCounter > 1 Then
MsgBox "Kundennummer nicht eindeutig !!!"
ElseIf strKundennummer = "" Then
MsgBox "Nix gefunden !", vbCritical
Else
MsgBox strKundennummer
Sheets("Tabelle1").Range("A9") = strKundennummer
End If
If Sheets("Tabelle2").AutoFilterMode Then Sheets("Tabelle2").AutoFilterMode = False
Sheets("Tabelle1").Activate
Application.ScreenUpdating = True
End Sub


Dein zweites Problem habe ich nicht verstanden, wenn du nicht nur die Zelle sondern ne Zeile kopiert haben möchtest, dann z.B. so.
'kopieren
Sheets("Tabelle2").Range("E" & lngI).EntireRow.Copy
' Einfügen
Sheets("Tabelle1").Paste Destination:=Worksheets("Tabelle1").Rows(20)
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Kundennummer in andererm Tabellenblatt einfühgen
06.06.2005 23:58:16
gregor
Hallo Heiko,
Super,
das ist gut,
ich wollte mit Range erreichen, dass die Zelle A1 aktiviert wird,
damit der Autofilter richtig ansetzen kann,
doch (Range("A1").Select) ging nicht
mit (Sheets("Tabelle2").Range("A1").Select) gehts,
allerdings hat sich das Problem durch
(If Sheets("Tabelle2").AutoFilterMode Then Sheets("Tabelle2").AutoFilterMode = False)
erledigt,

der
'kopieren
Sheets("Tabelle2").Range("E" & lngI).EntireRow.Copy
' Einfügen
Sheets("Tabelle1").Paste Destination:=Worksheets("Tabelle1").Rows(20)
ist auch super
doch wird immer eine Zeile unter der gefilterten kopiert und eingefühgt ¿
.(
kann excel auch einzelne/mehrere bestimmte Zellen (aus der gefilterten Zeile)
kopieren und in eine besimmt Zelle einfühgen ? (mit diesem befehl)
Danke
Anzeige
AW: Kundennummer in andererm Tabellenblatt einfühgen
07.06.2005 10:52:41
Heiko S.
Hallo Gregor,
das er nicht die richtige Zeile kopiert kann ich bei mir nicht feststellen. Hier nochmal der Code so wie ich íhn bei meiner (immer noch gleich aufgebauten) Beispieltabelle einsetzte.

Private Sub CommandButton1_Click()
Dim lngI As Long, intCounter As Integer
Dim strKundennummer As String
intCounter = 0
Application.ScreenUpdating = False
Sheets("Tabelle2").Activate
If Sheets("Tabelle2").AutoFilterMode Then Sheets("Tabelle2").AutoFilterMode = False
Sheets("Tabelle2").Columns("A:E").AutoFilter
If Sheets("Tabelle1").Range("A5") <> "" Then
Selection.AutoFilter Field:=1, Criteria1:=CStr(Sheets("Tabelle1").Range("A5"))
End If
If Sheets("Tabelle1").Range("A6") <> "" Then
Selection.AutoFilter Field:=2, Criteria1:=CStr(Sheets("Tabelle1").Range("A6"))
End If
If Sheets("Tabelle1").Range("A7") <> "" Then
Selection.AutoFilter Field:=3, Criteria1:=CStr(Sheets("Tabelle1").Range("A7"))
End If
If Sheets("Tabelle1").Range("A8") <> "" Then
Selection.AutoFilter Field:=4, Criteria1:=CStr(Sheets("Tabelle1").Range("A8"))
End If
For lngI = 2 To Sheets("Tabelle2").Range("E65536").End(xlUp).Row
If Sheets("Tabelle2").Rows(lngI).EntireRow.Hidden = False Then
intCounter = intCounter + 1
strKundennummer = Sheets("Tabelle2").Range("E" & lngI)
Sheets("Tabelle2").Range("E" & lngI).EntireRow.Copy
End If
Next lngI
If intCounter > 1 Then
MsgBox "Kundennummer nicht eindeutig !!!"
ElseIf strKundennummer = "" Then
MsgBox "Nix gefunden !", vbCritical
Else
MsgBox strKundennummer
Sheets("Tabelle1").Range("A9") = strKundennummer
Sheets("Tabelle1").Paste Destination:=Worksheets("Tabelle1").Rows(20)
Application.CutCopyMode = False
End If
If Sheets("Tabelle2").AutoFilterMode Then Sheets("Tabelle2").AutoFilterMode = False
Sheets("Tabelle1").Activate
Application.ScreenUpdating = True
End Sub

Und was du alle mit der Copy Methode machen kannst schaust du am besten in der VBA Hilfe nach. (Das Wort Copy im VBA Editor mit der Maus komplett markieren und F1 drücken).

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
Kundennummer in andererm Tabellenblatt einfühgen
12.06.2005 20:56:45
gregor
Hallo Heiko,
ich war die letzte Woche unterwegs,
danke für deine Hilfe,
mein Fehler ich habe die Copy Methode falsch eingesetzt,
an falscher Stelle im Code eingebaut,
Gruß
Gregor
;
Anzeige

Infobox / Tutorial

Kundennummer einfügen und automatisch zuordnen in Excel


Schritt-für-Schritt-Anleitung

  1. Tabellenblätter erstellen: Erstelle zwei Tabellenblätter: "Kunden-Liste" und "Aktion". Trage in "Kunden-Liste" die Kundendaten (z.B. PLZ, Ort, Kundennummer) ein.

  2. Daten eingeben: In "Aktion" gib in Zelle A5 die PLZ, in A6 den Ort, und in A7 die Straße ein.

  3. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  4. Neues Modul erstellen: Klicke mit der rechten Maustaste im Projekt-Explorer auf "VBAProject (DeinWorkbook)", wähle "Einfügen" und dann "Modul".

  5. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Private Sub CommandButton1_Click()
       Dim lngI As Long, intCounter As Integer
       Dim strKundennummer As String
       intCounter = 0
       Application.ScreenUpdating = False
       Sheets("Kunden-Liste").Activate
       If Sheets("Kunden-Liste").AutoFilterMode Then Sheets("Kunden-Liste").AutoFilterMode = False
       Sheets("Kunden-Liste").Columns("A:E").AutoFilter
       If Sheets("Aktion").Range("A5") <> "" Then
           Selection.AutoFilter Field:=1, Criteria1:=CStr(Sheets("Aktion").Range("A5"))
       End If
       If Sheets("Aktion").Range("A6") <> "" Then
           Selection.AutoFilter Field:=2, Criteria1:=CStr(Sheets("Aktion").Range("A6"))
       End If
       For lngI = 2 To Sheets("Kunden-Liste").Range("E65536").End(xlUp).Row
           If Sheets("Kunden-Liste").Rows(lngI).EntireRow.Hidden = False Then
               intCounter = intCounter + 1
               strKundennummer = Sheets("Kunden-Liste").Range("E" & lngI)
           End If
       Next lngI
       If intCounter > 1 Then
           MsgBox "Kundennummer nicht eindeutig !!!"
       ElseIf strKundennummer = "" Then
           MsgBox "Nix gefunden !", vbCritical
       Else
           Sheets("Aktion").Range("A9") = strKundennummer
       End If
       If Sheets("Kunden-Liste").AutoFilterMode Then Sheets("Kunden-Liste").AutoFilterMode = False
       Sheets("Aktion").Activate
       Application.ScreenUpdating = True
    End Sub
  6. Button erstellen: Füge einen Button auf dem "Aktion"-Blatt hinzu und verlinke ihn mit dem CommandButton1_Click-Ereignis.

  7. Testen: Gib eine PLZ und einen Ort ein und klicke auf den Button. Die entsprechende Kundennummer sollte in Zelle A9 erscheinen.


Häufige Fehler und Lösungen

  • Fehler bei leeren Feldern: Wenn alle Suchfelder leer sind, kann es zu Fehlern im VBA-Code kommen. Füge eine Überprüfung hinzu, um sicherzustellen, dass mindestens eines der Felder ausgefüllt ist.

  • Kundennummer nicht eindeutig: Wenn mehrere Einträge gefunden werden, zeigt Excel eine Fehlermeldung an. Stelle sicher, dass deine Daten eindeutig sind, oder passe den Filter an, um die Suche zu verfeinern.


Alternative Methoden

  • SVERWEIS-Funktion: Eine einfache Möglichkeit, um die Kundennummer zuzuordnen, ist die Verwendung der SVERWEIS-Formel. Zum Beispiel:

    =SVERWEIS(A5; 'Kunden-Liste'!$A$1:$D$100; 4; FALSCH)

    Stelle sicher, dass die PLZ in Spalte A der "Kunden-Liste" steht und die Kundennummer in Spalte D.

  • INDEX und VERGLEICH: Alternativ kannst du die Kombination von INDEX und VERGLEICH verwenden, um flexibler zu sein.


Praktische Beispiele

Ein praktisches Beispiel könnte eine Kundenverwaltung für ein kleines Unternehmen sein, bei dem die Kundennummer automatisch zugeordnet wird, wenn der Mitarbeiter die PLZ und den Ort eingibt. So wird die Effizienz bei der Bearbeitung von Kundenanfragen deutlich erhöht.


Tipps für Profis

  • VBA optimieren: Verwende Application.ScreenUpdating = False am Anfang deiner Subroutine, um die Ausführungsgeschwindigkeit zu erhöhen, und setze es am Ende wieder auf True.

  • Datenvalidierung: Füge eine Datenvalidierung für die Eingabefelder hinzu, um sicherzustellen, dass die Benutzer nur gültige PLZ und Orte eingeben.


FAQ: Häufige Fragen

1. Kann ich auch mehrere Kriterien für die Suche verwenden?
Ja, du kannst mehrere Kriterien im VBA-Code hinzufügen, indem du die Filter entsprechend anpasst.

2. Welche Excel-Version benötige ich?
Der oben beschriebene Prozess funktioniert ab Excel 2007 und höher, da die VBA-Funktionen und die Benutzeroberfläche in diesen Versionen gleich sind.

3. Wie kann ich die Kundennummer automatisch erstellen?
Du kannst eine Formel oder ein Makro verwenden, um die Kundennummer basierend auf anderen Daten zu generieren, z.B. durch Kombination von PLZ und einem fortlaufenden Zähler.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige