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
GELÖST

Mehrere Werte aus großer Liste anzeigen

Frage Microsoft Microsoft Office

Mitglied: Acrysis

Acrysis (Level 1) - Jetzt verbinden

14.02.2012 um 09:37 Uhr, 3790 Aufrufe, 6 Kommentare

Hi

Moin @ all,

ich habe eine Problem & zwar habe ich eine Liste die sich durch Formulare füllt, allerdings möchte ich das wenn in Spalte G kein X steht, aber in Spalte B eine Nummer, das er mir die ausgibt, sverweis schön und gut allerdings gibt er mir da immer nur den 1. Wert aus ohne X, da die Liste von 16-6000 geht, möchte ich keine so riesen Liste sondern es gibt maximal 12 Werte ohne X mit ausgefüllter B Spalte. Ich dachte zuerst an ein Button den ich drücke worauf er per VBA abfragt in welcher Zeile etwas steht und kein X in Spalte G ist damit er dann mir den Wert aus Spalte B also Messagebox ausgibt, allerdings habe ich keine Ahnung wie ich das per VBA oder Formel realisieren kann.

Mit freundlichen Grüßen Acrysis
Mitglied: bastla
14.02.2012 um 12:22 Uhr
Hallo Acrysis!

Da Du leider Deine Kiste nicht näher beschreibst, unterstelle ich mal, dass es in Spalte A in jeder Zeile einen Eintrag gibt (bzw, dass die Liste endet, wenn in Spalte A kein Inhalt vorhanden ist) und dass die Daten ab Zeile 2 zu finden sind - in diesem Fall könnte das in VBA etwa so gehen:
01.
Sub FindeWerte() 
02.
ZeileVon = 2 
03.
SpalteLfd = "A" 
04.
Spalte1 = "B" 
05.
Spalte2 = "G" 
06.
 
07.
Zeile = ZeileVon 
08.
Do Until Cells(Zeile, SpalteLfd).Value = "" 
09.
    If Cells(Zeile, Spalte1).Value <> "" And Cells(Zeile, Spalte2).Value = "" Then Ausgabe = Ausgabe & vbCrLf & Cells(Zeile, Spalte1).Value 
10.
    Zeile = Zeile + 1 
11.
Loop 
12.
MsgBox Mid(Ausgabe, 3), vbInformation + vbOKOnly, "Ergebnisse" 
13.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: Acrysis
14.02.2012 um 14:29 Uhr
Meine Kiste sieht so aus:

Ein Formular wird geöffnet, man trägt daten ein und es wird von Spalte A - F reingeschrieben, mit dem 2. Formular beendet man den Vorgang und es wird ein X in Spalte G geschrieben. Dadurch wird die Fahrt beendet.

Da ja nun allerdings mehrere Leute eine Fahrt eröffnen mit unterschiedlichen Benutzernummern (Spalte B), soll man per Messagebox am besten sehen können nachdem man auf einen Button geklickt hab welcher Benutzer die Fahrt noch nicht beendet hat, sprich solange Spalte A-F in einer Zeile vorhanden ist, allerdings in Spalte G noch kein X für die beendigung steht, sollen die Benutzernummern angezeigt werden.

so mein vorgehen
Bitte warten ..
Mitglied: Acrysis
14.02.2012 um 15:05 Uhr
Hey bastla, das funktioniert super, wenn ich mehr Werte dazu nehme schmeißt er mir das direkt untereinander, kann ich das auch mit Bindestrich in einer Zeile haben, ab dem nächsten B wert die nächste Zeile in der Msg Box ?

bei mir sieht's nun so aus


Sub findewert()

ZeileVon = 16
SpalteLfd = "A"
Spalte1 = "B"
Spalte2 = "G"
Spalte3 = "O"
Spalte4 = "P"
Spalte5 = "Q"

Zeile = ZeileVon
Do Until Cells(Zeile, SpalteLfd).Value = ""
If Cells(Zeile, Spalte1).Value <> "" And Cells(Zeile, Spalte2).Value = "" Then Ausgabe = Ausgabe & vbCrLf & Cells(Zeile, Spalte1).Value
If Cells(Zeile, Spalte3).Value <> "" And Cells(Zeile, Spalte2).Value = "" Then Ausgabe = Ausgabe & vbCrLf & Cells(Zeile, Spalte3).Value
If Cells(Zeile, Spalte4).Value <> "" And Cells(Zeile, Spalte2).Value = "" Then Ausgabe = Ausgabe & vbCrLf & Cells(Zeile, Spalte4).Value
If Cells(Zeile, Spalte5).Value <> "" And Cells(Zeile, Spalte2).Value = "" Then Ausgabe = Ausgabe & vbCrLf & Cells(Zeile, Spalte5).Value
Zeile = Zeile + 1
Loop
MsgBox Mid(Ausgabe, 3), vbInformation + vbOKOnly, "Fahrender Picker"

End Sub
Bitte warten ..
Mitglied: bastla
14.02.2012 um 16:45 Uhr
Hallo Acrysis!
kann ich das auch mit Bindestrich in einer Zeile haben
Dazu brauchst Du ja nur das Trennzeichen "Zeilenschaltung" (vbCrLf" durch das gewünschte Zeichen ersetzen, also etwa:
If Cells(Zeile, Spalte3).Value <> "" And Cells(Zeile, Spalte2).Value = "" Then Ausgabe = Ausgabe & " - " & Cells(Zeile, Spalte3).Value
Die Laufzeit wird ja vermutlich kein großes Thema sein, ließe sich aber etwas verbessern, wenn die Abfrage nach der Spalte G nur einmal erfolgt:
01.
... 
02.
If Cells(Zeile, Spalte2).Value = "" Then 
03.
    If Cells(Zeile, Spalte1).Value <> "" Then Ausgabe = Ausgabe & vbCrLf & Cells(Zeile, Spalte1).Value 
04.
    If Cells(Zeile, Spalte3).Value <> "" Then Ausgabe = Ausgabe & " - " & Cells(Zeile, Spalte3).Value 
05.
    If Cells(Zeile, Spalte4).Value <> "" Then Ausgabe = Ausgabe & " - " & Cells(Zeile, Spalte4).Value 
06.
    If Cells(Zeile, Spalte5).Value <> "" Then Ausgabe = Ausgabe & " - " & Cells(Zeile, Spalte5).Value 
07.
End If 
08.
...
Grüße
bastla
Bitte warten ..
Mitglied: Acrysis
09.03.2012 um 10:18 Uhr
Moin, sorry das ich den Thread nochmal aufhole, aber ich habe 3 Spalten hinzugefügt und die Abfrage von neu abgefangen, allerdings funtkioniert es nun nicht mehr. Wenn ich auf den Button klicke bekomme ich eine leere Box.....
Bitte warten ..
Mitglied: bastla
09.03.2012 um 10:49 Uhr
Hallo Acrysis!

Da ja die Aufnahme in die Variable "Ausgabe" von 2 verschiedenen Zellen abhängt, müssen ggf auch beide Abfragen angepasst werden (was ganz nebenbei mit meinem zuletzt geposteten Vorschlag - also
If Cells(Zeile, Spalte2).Value = "" Then
vorweg - leichter zu realisieren sein sollte ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
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 ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...