Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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: 94451

94451 (Level 1)

26.02.2015, aktualisiert 20:17 Uhr, 708 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 94451:
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: 94451
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: 116301
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: 94451
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 ..
Ähnliche Inhalte
VB for Applications
Mehrere Spalten Durchsuchen und Ergebnisse in neuer Tabelle Ausgeben (3)

Frage von Mr.Green zum Thema VB for Applications ...

Microsoft Office
Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren (1)

Frage von Server4Alle zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell Listbox Items verschieben (2)

Frage von internet2107 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: ScrollBar in ListBox definieren (11)

Frage von Markus2016 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Firewall
gelöst Firewall Firmeneimsatz (22)

Frage von wiesi200 zum Thema Firewall ...

Multimedia & Zubehör
gelöst 8 GB USB Stick besitzt nur noch 4 MB Kapazität (13)

Frage von Gwahlers zum Thema Multimedia & Zubehör ...

LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (11)

Frage von kartoffelesser zum Thema LAN, WAN, Wireless ...

Windows Server
ESXI Free Windows Server 2016 Datacenter aktivieren (10)

Frage von iDeathz zum Thema Windows Server ...