Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: -> VBA-AddIn: Menüs in Excel User Forms <-
PLZ & Ort auf Userform
Gehe zu Seite 1, 2  Weiter
zurück: wenn bestimmte zellen jeder zeile ="" dann weiter: Alle bedingten Formate löschen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Bald
Ähnliches


Verfasst am:
01. Nov 2011, 16:47
Rufname:

PLZ & Ort auf Userform - PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Zusammen,

In einer Userform gebe ich anhand einer Combobox die Postleitzahl und Ort ein.
Für die PLZ & Ort habe ich eine große Datenbank, welche aus einer weiteren Tabelle heraus gerufen wird.

2 Fragen habe ich dazu:
1.: Gibt es die Möglichkeit, dass PLZ in der ersten Combobox eingegeben wird, und Ort automatisch erscheint?
Wenn ja, wie müsste es programmiert werden?

2.: Wie findet ihr eine Datenbank (welche ja viel Platz und Effizienz kostet)?
Welche andere Möglichkeit fällt euch sonst ein, wie ich die PLZen und Orte unterbringen kann?

Die Möglichkeit einer manuellen Eingabe sollte immer vorhanden sein.

Freundliche Grüße & bis BALD Smile
pefeu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
01. Nov 2011, 18:29
Rufname: Peter
Wohnort: Hamburg


AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Halo Bald,

zur Frage 1:
Es muss z. B. mit der Find-Methode nach den Orten mit der angegeben Postlz gesucht werden.
Dann können alle Ortsnamen zur Postlz angezeigt werden, denn es gibt teilweise mehrere Orte zu einer Postlz.
Das kann wieder in eine ComboBox sein, aus der man dann auswählen kann.
zur Frage 2:
Wenn Du alle Postlz und Ortsnamen benötigst, kommst Du um eine umfangreiche Datenbank nicht herum.

Gruß Peter
Bald
Ähnliches


Verfasst am:
02. Nov 2011, 09:40
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Peter,
vielen Dank für deine Antwort.

Es sind über 20Tausend Postleitzahlen und Orte die ich bei weitem nicht alle brauche (Bei Intresse, bitte melden!), daher werde ich schweren Herzens auf diese Datenbank verzichten.

Ich überlege, ob ich die Datenbank mit der Eingabe von der Userform erstelle, so das sie mitwächst. Das heißt, für einen Kunden gebe ich die PLZ und Ort ein und diese erscheinen sowohl auf der Kunden Tabelle, als auch auf der Datenbank Tabelle. Sobald eine PLZ eingegeben wird, die schon existiert, erscheint der Ort (mit der Find-Methode) auf der Combobox. Wenn eine PLZ noch nicht existiert, wird diese mit dem zugehörigen Ort an beiden Tabellen eingefügt.

Hat jemand hierzu einen Beispiel an das ich mich orientieren kann?
Ich möchte gerne Lernen, aber die Find-Methode ist mir einige Nummern zu groß.

Für einen weiteren Vorschlag würde ich mich ebenfalls freuen.

Freundliche Grüße & bis BALD Smile
Gast



Verfasst am:
02. Nov 2011, 10:30
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo,

Zitat:
Ich überlege, ob ich die Datenbank mit der Eingabe von der Userform erstelle, so das sie mitwächst.

Die Idee ist in meinen Augen nicht so toll: Für mich sind
1. die Vereinfachung der Eingabe
2. das Verhindern von Tippfehlern
die wesentlichen Vorteile bzw. Beweggründe eine solche Datenbank zu benutzen. Beide Vorteile werden bei dieser Idee erst einmal zunichte gemacht.

Daher erscheint es mir nicht als sinnvoll, deine bereits existierende Datenbank "mit der Zeit nachzubauen". 20000 Datensätze ist ja noch nicht so wahnsinnig viel.


Wenn deine Programmierkenntnisse nicht so gut sind, dann würde ich mit Leichtem Anfangen:
Exportiere doch deine Daten und lege sie in einem Excel-Tabellenblatt ab. Dann sind deine Anforderungen schon sehr viel einfacher umzusetzen.

Grüße, Ulrich
pefeu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Nov 2011, 12:20
Rufname: Peter
Wohnort: Hamburg


AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Bald,

als Anlage eine kleine Beispiel-Mappe zur Ansicht.

Gruß Peter



Postlz Auswahl.xls
 Beschreibung:

Download
 Dateiname:  Postlz Auswahl.xls
 Dateigröße:  212 KB
 Heruntergeladen:  157 mal

Bald
Ähnliches


Verfasst am:
02. Nov 2011, 19:27
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Peter,

vielen herzlichen Dank für das Beispiel.

Deine Lösung versuche ich vergeblich auf einer Userform mit Comboboxen zu realisieren.

Kannst du mir zeigen, wie ich vorangehen kann oder dies für mich programmieren?
Den Chaos/Müll was ich hier verursacht habe, lasse ich lieber weg Very Happy Ist schon peinlich, mehrere Stunden dafür aufzubringen Embarassed

'Bei Eingabe einer bereits bekannten PLZ soll der zugehörige Ort in die Combobox Ort eingetragen werden
'ist die PLZ nicht bekannt, soll der manuell in die Combobox eingetrage Ort PLZDatenbank eingetragen werden.
'Existieren mehrere Orte zu dieser PLZ, sollen nur diese in der Combobox Ort erscheinen.
Gast



Verfasst am:
02. Nov 2011, 20:30
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo,

das sollte dir nicht peinlich sein, denn das ging jedem genau so (zumindest mir). Du würdest wahrscheinlich auch wesentlich mehr lernen, da ich mich an deinen Gedankengängen versuchen würde zu orientieren anstatt dir meine Logik aufzudrängen.

Wie dem auch sei. Hier ein Code für eine Userform, die zwei Comboboxes (ComboBox1 und ComboBox2) und einen CommandButton (CommandButton1) hat.
Es geht nur darum, die richtigen Werte in die Comboboxes zu bekommen, bzw. die "Datenbanktabelle" zu erweitern (dafür der Commandbutton).

Code:
Option Explicit

' ===================================================
'  Userform mit:
'     ComboBox1:          PLZ
'     ComboBox2:          Ort
'     CommandButton1:     "In Datenbank aufnehmen"
'
'  Tabellenblatt:
'      Tabelle1: Spalte A: PLZ, Spalte B: Ort
' ===================================================

Private Sub UserForm_Initialize()
'PLZ in Combobox1
   Call FuelleCombo1   'Makro aufrufen
End Sub


Private Sub ComboBox1_Change()   'Es wurde eine neue PLZ ausgewählt
Dim rngPLZ As Range, strAdr As String
'Inhalt von Combobox2 löschen
   Me.ComboBox2.Clear

'PLZ suchen
   Set rngPLZ = Worksheets("Tabelle1").Columns(1).Find(Me.ComboBox1.Value, , xlValues, xlWhole)
   If Not rngPLZ Is Nothing Then
      strAdr = rngPLZ.Address       'Ersten Fundort merken
      Do
         Me.ComboBox2.AddItem rngPLZ.Offset(0, 1).Value                    'Ort in Combobox aufnehmen
         Set rngPLZ = Worksheets("Tabelle1").Columns(1).FindNext(rngPLZ)   'nächste PLZ suchen
      Loop While strAdr <> rngPLZ.Address                                  'Solange bis erster Fundort erneut gefunden wurde
      Me.ComboBox2.Value = Me.ComboBox2.List(0, 0)
   End If
End Sub


Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Der Fokus wurde von Combobox1 weggenommen. (Combobox1 wurde verlassen)

If ComboBox2.ListCount = 0 And ComboBox2.Value = "" Then
   MsgBox "Es konnte kein passender Ort zur Postleitzahl ermittelt werden." & vbLf & vbLf & _
          "Sie können einen Ort in das Auswahlfeld eingeben" & vbLf & _
          "und auf ""In Datenbank aufnehmen"" klicken."
End If
End Sub


Private Sub CommandButton1_Click()     'In Datenbank aufnehmen
Dim rngNeu As Range
If Me.ComboBox2.Value <> "" And Me.ComboBox1.Value <> "" Then     'Kontrolle, ob etwas eingetragen wurde

'Freie Zeile suchen
   Set rngNeu = Worksheets("Tabelle1").Cells.Find("*", , , , xlByRows, xlPrevious)
   If rngNeu Is Nothing Then
      Set rngNeu = Worksheets("Tabelle1").Range("A1")
   Else
      Set rngNeu = rngNeu.Offset(1, 0)
   End If

'Werte eintragen
   Worksheets("Tabelle1").Cells(rngNeu.Row, 1).Value = Me.ComboBox1.Value                    'PLZ
   Worksheets("Tabelle1").Cells(rngNeu.Row, 2).Value = Me.ComboBox2.Value                    'Ort

''Sortieren falls gewünscht
'    Worksheets("Tabelle1").Sort.SortFields.Clear
'    Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("A1:A2") _
'        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'    With ActiveWorkbook.Worksheets("Tabelle1").Sort
'        .SetRange Worksheets("Tabelle1").UsedRange
'        .Header = xlGuess
'        .MatchCase = False
'        .Orientation = xlTopToBottom
'        .Apply
'    End With


'Combobox1 neu füllen
   Call FuelleCombo1       'Makro aufrufen

End If
End Sub


Private Sub FuelleCombo1()
'Combobox1 neu füllen
'Hier sollte vielleicht ein Code hin, der mehrfaches Aufführen der selben PLZ verhindert.
   Me.ComboBox1.RowSource = Worksheets("Tabelle1").UsedRange.Columns(1).Address(, , , True)
End Sub



Wenn du sehr viele Datensätze hast, oder der Rechner langsam ist, dann könnte es langwierig sein, eine PLZ in die Combobox einzugeben. Das liegt daran, dass nach jeder Eingabe einer Ziffer sofort die ganze "Datenbank" nach dieser Postleitzahl durchsucht wird.
Es gibt mehrere Möglichkeiten, wie man das vermeiden kann. Ich will den Code jetzt aber nicht überfrachten.

Grüße, Ulrich
pefeu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Nov 2011, 21:58
Rufname: Peter
Wohnort: Hamburg

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Bald,

als Anlage ein auf 500 Postlz reduzierte Mappe, mit der Du spielen kannst.

Gruß Peter



Mappe Bald.xls
 Beschreibung:

Download
 Dateiname:  Mappe Bald.xls
 Dateigröße:  90.5 KB
 Heruntergeladen:  102 mal

Bald
Ähnliches


Verfasst am:
03. Nov 2011, 15:57
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Ulrich & Peter,

vielen Dank für Eure Hilfe und Unterstützung.
gespielt habe ich und da ist was nützliches dabei herausgekommen Smile
Ich bedanke mich herzlich für eure Mühen und eure große Hilfsbereitschaft.

Freundliche Grüße & bis BALD Razz
Gast



Verfasst am:
07. Nov 2011, 06:08
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Ulrich und die anderen
kann jemand den code so erweitern dass die daten auf tabelle 2 gespeichert werden?
tabelle 2 soll dann datenbank sein und tabelle 1 die liste.
doppelte einträge sollen in der datenbank (tabelle 2) nicht vorkommen.
Gast



Verfasst am:
07. Nov 2011, 06:17
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hier funktioniert schon alles außer das schreiben in tabelle 2 als datenbank und sortieren:

Code:
Option Explicit

' ===================================================
'  Userform mit:
'     ComboBox1:          PLZ
'     ComboBox2:          Ort
'     CommandButton1:     "In Datenbank aufnehmen"
'
'  Tabellenblatt:
'      Tabelle1: Spalte A: PLZ, Spalte B: Ort
' ===================================================

Private Sub UserForm_Initialize()
'PLZ in Combobox1
   Call FuelleCombo1   'Makro aufrufen
End Sub


Private Sub ComboBox1_Change()   'Es wurde eine neue PLZ ausgewählt
Dim rngPLZ As Range, strAdr As String
'Inhalt von Combobox2 löschen
   Me.ComboBox2.Clear

'PLZ suchen
   Set rngPLZ = Worksheets("Tabelle1").Columns(1).Find(Me.ComboBox1.Value, , xlValues, xlWhole)
   If Not rngPLZ Is Nothing Then
      strAdr = rngPLZ.Address       'Ersten Fundort merken
      Do
         Me.ComboBox2.AddItem rngPLZ.Offset(0, 1).Value                    'Ort in Combobox aufnehmen
         Set rngPLZ = Worksheets("Tabelle1").Columns(1).FindNext(rngPLZ)   'nächste PLZ suchen
      Loop While strAdr <> rngPLZ.Address                                  'Solange bis erster Fundort erneut gefunden wurde
      Me.ComboBox2.Value = Me.ComboBox2.List(0, 0)
   End If
End Sub


Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Der Fokus wurde von Combobox1 weggenommen. (Combobox1 wurde verlassen)

If ComboBox2.ListCount = 0 And ComboBox2.Value = "" Then
   MsgBox "Es konnte kein passender Ort zur Postleitzahl ermittelt werden." & vbLf & vbLf & _
          "Sie können einen Ort in das Auswahlfeld eingeben" & vbLf & _
          "und auf ""In Datenbank aufnehmen"" klicken."
End If
End Sub


Private Sub CommandButton1_Click()     'In Datenbank aufnehmen
Dim rngNeu As Range
If Me.ComboBox2.Value <> "" And Me.ComboBox1.Value <> "" Then     'Kontrolle, ob etwas eingetragen wurde

'Freie Zeile suchen
   Set rngNeu = Worksheets("Tabelle1").Cells.Find("*", , , , xlByRows, xlPrevious)
   If rngNeu Is Nothing Then
      Set rngNeu = Worksheets("Tabelle1").Range("A1")
   Else
      Set rngNeu = rngNeu.Offset(1, 0)
   End If

'Werte eintragen
   Worksheets("Tabelle1").Cells(rngNeu.Row, 1).Value = Me.ComboBox1.Value                    'PLZ
   Worksheets("Tabelle1").Cells(rngNeu.Row, 2).Value = Me.ComboBox2.Value                    'Ort

''Sortieren falls gewünscht
'    Worksheets("Tabelle1").Sort.SortFields.Clear
'    Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("A1:A2") _
'        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'    With ActiveWorkbook.Worksheets("Tabelle1").Sort
'        .SetRange Worksheets("Tabelle1").UsedRange
'        .Header = xlGuess
'        .MatchCase = False
'        .Orientation = xlTopToBottom
'        .Apply
'    End With


'Combobox1 neu füllen
   Call FuelleCombo1       'Makro aufrufen

End If
End Sub


Private Sub FuelleCombo1()
'Combobox1 neu füllen
'Hier sollte vielleicht ein Code hin, der mehrfaches Aufführen der selben PLZ verhindert.
   Me.ComboBox1.RowSource = Worksheets("Tabelle1").UsedRange.Columns(1).Address(, , , True)
End Sub
Gast



Verfasst am:
07. Nov 2011, 12:10
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

gibt es einen vorschlag, wie man tabelle 2 als datenbank benutzen kann?
Gast



Verfasst am:
07. Nov 2011, 12:53
Rufname:

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Wie kann man statt in Tabelle 1, in Tabelle 2 schreiben und von dort heraus die Combobox füllen?
pefeu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Nov 2011, 13:50
Rufname: Peter
Wohnort: Hamburg

AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Hallo Bald,

wenn Du in diesen Befehlszeilen Tabelle1 gegen Tabelle2 änderst. sollte es funktionieren:
Code:
'Freie Zeile suchen
   Set rngNeu = Worksheets("Tabelle1").Cells.Find("*", , , , xlByRows, xlPrevious)
   If rngNeu Is Nothing Then
      Set rngNeu = Worksheets("Tabelle1").Range("A1")
   Else
      Set rngNeu = rngNeu.Offset(1, 0)
   End If

'Werte eintragen
   Worksheets("Tabelle1").Cells(rngNeu.Row, 1).Value = Me.ComboBox1.Value                    'PLZ
   Worksheets("Tabelle1").Cells(rngNeu.Row, 2).Value = Me.ComboBox2.Value                    'Ort

Gruß Peter
Gast



Verfasst am:
07. Nov 2011, 15:51
Rufname:


AW: PLZ & Ort auf Userform - AW: PLZ & Ort auf Userform

Nach oben
       Version: Office 2003

Da stimmt doch irgendwas nicht..
Bin ich denn zu blöde dafür?

Download
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: SUMMEWENNS - Von PLZ 3 bis PLZ 4* 6 ckmueller 1114 05. Nov 2007, 21:07
Gast SUMMEWENNS - Von PLZ 3 bis PLZ 4*
Keine neuen Beiträge Excel Formeln: Wenn-Formel viel zu lang (auch für &) --> Alternative 13 starsucka83 3945 23. Okt 2007, 11:12
Gast Wenn-Formel viel zu lang (auch für &) --> Alternative
Keine neuen Beiträge Excel Formeln: Telefonnr. & Faxnr. vergleichen, Durchwahl ermitteln 3 otherlucy76 574 21. Sep 2007, 07:09
< Peter > Telefonnr. & Faxnr. vergleichen, Durchwahl ermitteln
Keine neuen Beiträge Excel Formeln: Text suchen & Daten aus dessen Zeile/Spalte wiedergeben 1 Seb789 4252 02. Sep 2007, 12:04
Klaus-Dieter Text suchen & Daten aus dessen Zeile/Spalte wiedergeben
Keine neuen Beiträge Excel Formeln: gleitend arithmetischer mittelwert & exponentielle Glätt 0 Max4 1822 29. Aug 2007, 10:04
Max4 gleitend arithmetischer mittelwert & exponentielle Glätt
Keine neuen Beiträge Excel Formeln: Tabelle über Userform filtern! 1 Gast 782 17. Aug 2007, 23:59
fridgenep Tabelle über Userform filtern!
Keine neuen Beiträge Excel Formeln: summewenn mit beschränkung: datum/uhrzeit & wert 5 aeb 2862 08. Aug 2007, 21:32
Klaus-Dieter summewenn mit beschränkung: datum/uhrzeit & wert
Keine neuen Beiträge Excel Formeln: Ort erkennen an PLZ 9 financialmaf 1015 30. Jul 2007, 20:55
financialmaf Ort erkennen an PLZ
Keine neuen Beiträge Excel Formeln: 2 Excelliste Abgleichen (PLZ & Adresssen) 1 malo 1200 27. Jul 2007, 12:07
Klaus-Dieter 2 Excelliste Abgleichen (PLZ & Adresssen)
Keine neuen Beiträge Excel Formeln: Brechnung von Gewicht und PLZ 1 Matrix-22 603 28. Jun 2007, 14:17
myfake Brechnung von Gewicht und PLZ
Keine neuen Beiträge Excel Formeln: In Spalte Textliste suchen & in Spalte daneben markieren 2 neueChaotin 2319 09. Jun 2007, 22:44
rola In Spalte Textliste suchen & in Spalte daneben markieren
Keine neuen Beiträge Excel Formeln: Abfrage über Tabellen & Spalten hinweg 6 gemini2205 905 02. Mai 2007, 21:39
gemini2205 Abfrage über Tabellen & Spalten hinweg
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Frontpage Forum