Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Formulare, Listboxen und durchsuchen von Tabellen

Frage Microsoft Microsoft Office

Mitglied: Roadrunner777

Roadrunner777 (Level 1) - Jetzt verbinden

26.02.2015, aktualisiert 20:17 Uhr, 669 Aufrufe, 5 Kommentare

Hallo Ihr,

dieses Script hat mir schon sehr weitergeholfen...
hab ich 'fast' so in den Tiefen des Internets gefunden:

01.
    With Worksheets("Lieferanten").Range("A:A") 
02.
    editForm.lieferList.Clear 
03.
      Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues, lookat:=xlWhole) 
04.
        If Not rngCell Is Nothing Then 
05.
          strFirstAddress = rngCell.Address 
06.
          Do 
07.
            With editForm.lieferList 
08.
            .ColumnCount = 4 
09.
              .AddItem 
10.
              .List(.ListCount - 1, 0) = rngCell.value 
11.
              .List(.ListCount - 1, 1) = rngCell.Offset(0, 1).value 
12.
              .List(.ListCount - 1, 2) = rngCell.Offset(0, 2).value 
13.
              .List(.ListCount - 1, 3) = rngCell.Offset(0, 3).value 
14.
              .ColumnWidths = "2,5cm;1,5cm;2,5cm;2,5cm" 
15.
            End With 
16.
            Set rngCell = .FindNext(rngCell) 
17.
            Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress 
18.
          Else 
19.
           MsgBox "Lieferant nicht gefunden", 48 
20.
        End If 
21.
    End With

er holt sich meine Kontaktliste und füllt meine Liste nach bedarf auf!

Frage 1:
hier wird vermutlich die Suche durchgeführt
Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues, lookat:=xlWhole)
wie kann ich bestimmen welche Spalte durchsucht wird?

Frage 2:
ist es möglich mehrere Spalten gleichzeitig zu durchsuchen? Wenn ja wie?
- wenn nein, wie mache ich das am geschicktesten, das ich bei jeder suche Triggern kann welche Spalte ich jetzt durchsuche (würde dann neben dem Suchbutton noch ne dropdown mit der Suchspalte machen)

Frage 3:
ich habe in meiner Tabelle Überschriften... diese werden vom Formular mit übernommen! wie kann ich die ausschließen?
damit bin ich gescheitert:
With Worksheets("Lieferanten").Range("A:A").Offset(1, 0)


Ich freue mich für jeden Tipp

Danke

RoadRunner
Mitglied: 114757
26.02.2015, aktualisiert um 20:43 Uhr
Zitat von Roadrunner777:
Frage 1:
hier wird vermutlich die Suche durchgeführt
> Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues,
lookat:=xlWhole)
wie kann ich bestimmen welche Spalte durchsucht wird?
Range hier ändern...
 With Worksheets("Lieferanten").Range("B:B") 
Frage 2:
ist es möglich mehrere Spalten gleichzeitig zu durchsuchen? Wenn ja wie?
Range anpassen, z.B.
 With Worksheets("Lieferanten").Range("A:D") 
Frage 3:
ich habe in meiner Tabelle Überschriften... diese werden vom Formular mit übernommen! wie kann ich die
ausschließen?
damit bin ich gescheitert:
> With Worksheets("Lieferanten").Range("A:A").Offset(1, 0)
With Worksheets("Lieferanten").Range("A2:A" & Cells(Rows.Count,1).End(xlUp).Row).
Gruß jodel32
Bitte warten ..
Mitglied: Roadrunner777
26.02.2015 um 20:54 Uhr
With Worksheets("Lieferanten").Range("A2:A" & Cells(Rows.Count,1).End(xlUp).Row)

das hier funktioniert

erst mal vielen Dank

... das andere Funktioniert leider nicht wie erhofft...

wenn ich die Range auf B:B ändere, dann sucht er zwar nach der Spalte, aber setzt diese auch ganz vorne hin...
=> das könnte ich aber noch über die Aufteilung ändern!

das Größere Problem ist wenn ich meine Range ändere auf A:D dann erhalte ich hier zu viele Ergebnisse
-> zu deutsch, wenn ich nach * suche, erhalte ich jeden wert 3 mal... zusätzlich werden die werte verschoben (also ich erhalte dann nur die Daten ab B bzw C oder D...)
siehe: http://www.directupload.net/file/d/3910/kyaorksp_png.htm
Bitte warten ..
Mitglied: 114757
26.02.2015 um 23:53 Uhr
Ganz einfach, du kannst die Spalte ermitteln in der der Wert gefunden wurde und dementsprechend die Offsets der Spalten dynamisch anpassen.
Die Spalte in der der Wert gefunden wurde erhältst du mit
rngCell.Column
Damit kannst du nun die Offsets verschieben...
Bitte warten ..
Mitglied: Eintagsfliege
27.02.2015 um 00:27 Uhr
Hallo Roadrunner777!

Ergänzend die dynamische Anpassung

Mit Spalte(B):
01.
With Worksheets("Lieferanten").Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row) 
02.
    '..... 
03.
    .List(.ListCount - 1, 0) = rngCell.Offset(0, -1).Value  'Spalte A 
04.
    .List(.ListCount - 1, 1) = rngCell.Offset(0, 0).Value   'Spalte B 
05.
    .List(.ListCount - 1, 2) = rngCell.Offset(0, 1).Value   'Spalte C 
06.
    .List(.ListCount - 1, 3) = rngCell.Offset(0, 2).Value   'Spalte D 
07.
    '..... 
08.
End With
Mit Spalte(A:D):
01.
With Worksheets("Lieferanten").Range("A2:D" & Cells(Rows.Count, "A").End(xlUp).Row) 
02.
    '..... 
03.
    .List(.ListCount - 1, 0) = rngCell.Offset(0, 1 - rngCell.Column).Value  'Spalte A 
04.
    .List(.ListCount - 1, 1) = rngCell.Offset(0, 2 - rngCell.Column).Value  'Spalte B 
05.
    .List(.ListCount - 1, 2) = rngCell.Offset(0, 3 - rngCell.Column).Value  'Spalte C 
06.
    .List(.ListCount - 1, 3) = rngCell.Offset(0, 4 - rngCell.Column).Value  'Spalte D 
07.
    '..... 
08.
End With
Grüße Dieter
Bitte warten ..
Mitglied: Roadrunner777
03.03.2015 um 13:36 Uhr
Hi,

die Lösung funktioniert gut...

das einzige was jetzt evtl. noch Fehlt, wäre das wenn die Kundennummer und die Telefonnummer ähnliche Passagen haben das der Eintrag zweimal kommt.

oder wenn ich mit * einfach alle anzeigen will, kommt es 4 Fach!

<- kann man eine abfrage machen 'wurde bereits ausgegeben'?

in Spalte A ist eine ID die nicht Doppelt vorkommt!
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...