Top-Themen

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

gelöst VBA - Ausgewählte Zeilen in Listbox alle kopieren

Mitglied: manuel5

manuel5 (Level 1) - Jetzt verbinden

11.10.2008, aktualisiert 12.10.2008, 10150 Aufrufe, 8 Kommentare

Moin moin,

wie schaffe ich es das er mir aus meiner Listbox (mit Kontrollkästchen) die angehackten "Zeilen" kopiert.
Das kopieren klappt nur leider nur den letzten Eintrag der Listbox

01.
Private Sub cmdRechnungKopieren_Click() 
02.
 
03.
Dim strDirDate As String 
04.
Dim strDirPath As String 
05.
Dim strCopyVon As String 
06.
Dim strSender As String 
07.
Dim pfad As String 
08.
 
09.
nDate = Format(frmTickets.DTPicker3, "yymmdd") 
10.
strDirDate = nDate 
11.
strSender = txtKW 
12.
strCopyVon = Label54 
13.
strDirPath = txtSpeicherPfad 
14.
strCopyVonPath = Left(strCopyVon, InStrRev(strCopyVon, "\") - 1) 
15.
strCopyVonFolder = Mid(strCopyVonPath, InStrRev(strCopyVonPath, "\") + 1) 
16.
 
17.
CreateObject("Scripting.FileSystemObject").CopyFolder strCopyVonPath, strDirPath & "\" & strCopyVonFolder 
18.
 
19.
End Sub
Ist es überhaupt möglich?



Gruß Manuel
Mitglied: bastla
11.10.2008 um 22:39 Uhr
Hallo manuel5!

Wenn Du eine MultiSelect-ListBox verwendest, kannst Du die gewählten Elemente so auslesen bzw gleich für jedes einzelne Element eine Kopierroutine - im Beispiel "Sub KopiereRechnungEinzel(Pfad)" - aufrufen:
01.
For i = 0 To ListBox1.ListCount - 1 
02.
    If ListBox1.Selected(i) = True Then 
03.
        KopiereRechnungEinzel ListBox1.List(i) 
04.
    End If 
05.
Next i
Grüße
bastla
Bitte warten ..
Mitglied: manuel5
12.10.2008 um 10:52 Uhr
Moin bastla,

so in etwa dachte ich es mir. Nur wo soll ich diese Routine eingeben?
Soll ich hierfür nen eigenen Sub anlegen? Hmmm......

Oder cmdRechnungKopieren_Click() ) ich denke hier wäre die Auslese besser aufgehoben oder?

Gruß Manuel
Bitte warten ..
Mitglied: bastla
12.10.2008 um 11:06 Uhr
Hallo manuel5!

An sich gehört diese Routine dort hin, wo Du bisher schon den Eintrag aus der ListBox ausgelesen hast (diesen Code-Teil hast Du hier nicht gepostet) - allerdings müssen jetzt ja gleich alle gewählten Einträge verarbeitet werden, sodass der Zwischenschritt über das Anzeigen im "Label54" eigentlich entfallen kann und für jede gewählte Datei, wie von mir skizziert, ein Sub zur Ausführung des Kopiervorganges aufzurufen, oder das Kopieren gleich in der Schleife selbst abgewickelt werden sollte.

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
12.10.2008 um 11:21 Uhr
Ja, klar -

01.
Private Sub cmdRechnungSuchen_Click() 
02.
Dim sInhalt As String 
03.
Dim strDirDate As String 
04.
Dim strSender As String 
05.
Dim strVerzeichnis As String 
06.
 
07.
 
08.
 
09.
strDirDate = DTPicker3 
10.
strSender = TextBox41 
11.
nDate = Format(DTPicker3, "yymmdd") 
12.
strDirDate = nDate 
13.
sInhalt = txtSuchBox 
14.
Pfad = strVerzeichnis & "\" & strDirDate & "\" & strSender & "\*.*" 
15.
Suchbegriff = txtSuchBox 
16.
ListBox2.Clear 
17.
 
18.
If txtSpeicherPfad = "" Then 
19.
MsgBox "Bitte Ordner anlegen" 
20.
cmdOrdnerAnlegen.SetFocus 
21.
Else 
22.
If txtSuchBox = "" Then 
23.
MsgBox "Bitte erst Suchbegriff eingeben" 
24.
txtSuchBox.SetFocus 
25.
Else 
26.
Set objShell = CreateObject("WScript.Shell") 
27.
 
28.
CommandLine = "%comspec% /c findstr /m /s /i /c:""" & Suchbegriff & """ """ & Pfad & """ " 
29.
 
30.
Set objExecObject = objShell.Exec(CommandLine) 
31.
    If Not objExecObject.StdOut.AtEndOfStream Then 
32.
        Filelist = Split(Trim(objExecObject.StdOut.ReadAll()), vbCrLf) 
33.
        For i = 0 To UBound(Filelist) - 1 
34.
            ListBox2.AddItem Filelist(i) 
35.
             
36.
            Label54 = Filelist(i) 
37.
        Next 
38.
        Else 
39.
        ListBox2.AddItem "Datei nicht gefunden" 
40.
        End If 
41.
    End If 
42.
End If 
43.
 
44.
End Sub
Wenn ich es bei " For i = 0 To UBound(Filelist) - 1" einfüge, dann findet er mir garnichts mehr . Von daher denke ich hab ich irgendwo nen Denkfehler drin.

Also -Schritt 1- Files suchen - Schritt 2 - Gefunden Files in Listbox anzeigen - Dann die ausgwählten Files in Schleife und diese dann kopieren.

So sollte es laufen oder?

Gruß Manuel
Bitte warten ..
Mitglied: bastla
12.10.2008 um 12:11 Uhr
Hallo manuel5!

Die Schritte 1 und 2 hattest Du ja schon, und diese sollen sich auch gar nicht ändern. Das Ergebnis - die "ListBox2" mit allen gefundenen Einträgen - bildet dann die Grundlage für den nächsten Schritt.

Da für den Schritt 3 ja zunächst einmal Voraussetzung ist, dass die gewünschten Dateien ausgewählt wurden (wofür der Benutzerin/dem Benutzer Zeit zu geben ist), muss dieser Schritt (über den Button "cmdRechnungKopieren") getrennt gestartet werden.

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
12.10.2008 um 19:31 Uhr
Servus bastla,

sorry, ich check das ned.

Hab ja meine Suche -->

01.
Private Sub cmdRechnungSuchen_Click() 
02.
Dim sInhalt As String 
03.
Dim strDirDate As String 
04.
Dim strSender As String 
05.
Dim strVerzeichnis As String 
06.
 
07.
 
08.
 
09.
strDirDate = DTPicker3 
10.
strSender = TextBox41 
11.
nDate = Format(DTPicker3, "yymmdd") 
12.
strDirDate = nDate 
13.
sInhalt = txtSuchBox 
14.
Pfad = strVerzeichnis & "\" & strDirDate & "\" & strSender & "\*.*" 
15.
Suchbegriff = txtSuchBox 
16.
ListBox2.Clear 
17.
 
18.
If txtSpeicherPfad = "" Then 
19.
MsgBox "Bitte Ordner anlegen" 
20.
cmdOrdnerAnlegen.SetFocus 
21.
Else 
22.
If txtSuchBox = "" Then 
23.
MsgBox "Bitte erst Suchbegriff eingeben" 
24.
txtSuchBox.SetFocus 
25.
Else 
26.
Set objShell = CreateObject("WScript.Shell") 
27.
 
28.
CommandLine = "%comspec% /c findstr /m /s /i /c:""" & Suchbegriff & """ """ & Pfad & """ " 
29.
 
30.
Set objExecObject = objShell.Exec(CommandLine) 
31.
    If Not objExecObject.StdOut.AtEndOfStream Then 
32.
        Filelist = Split(Trim(objExecObject.StdOut.ReadAll()), vbCrLf) 
33.
        For i = 0 To UBound(Filelist) - 1 
34.
        '    For i = 0 To Ubound(ListBox2.ListCount - 1 
35.
    If ListBox2.Selected(i) = True Then 
36.
        KopiereRechnungEinzel ListBox2.List(i) 
37.
    End If 
38.
Next i 
39.
       ' Next 
40.
        Else 
41.
        ListBox2.AddItem "Datei nicht gefunden" 
42.
        End If 
43.
    End If 
44.
End If 
45.
 
46.
End Sub
Und hier muss ich dann das gefundene in die Schleife packen -->

01.
Sub KopiereRechnungEinzel(Pfad) 
02.
For i = 0 To ListBox2.ListCount - 1 
03.
    If ListBox2.Selected(i) = True Then 
04.
        KopiereRechnungEinzel ListBox2.List(i) 
05.
    End If 
06.
Next i 
07.
End Sub
So - und dann den Schleifeninhalt in mein Ziel-Pfad kopieren -->

01.
Private Sub cmdRechnungKopieren_Click() 
02.
'Dim strDirZiel As String 
03.
Dim strDirDate As String 
04.
Dim strDirPath As String 
05.
Dim strCopyVon As String 
06.
Dim strSender As String 
07.
Dim Pfad As String 
08.
Dim i As Long 
09.
 
10.
 
11.
nDate = Format(frmTickets.DTPicker3, "yymmdd") 
12.
'strDirZiel = "Z:\test\" 
13.
strDirDate = nDate 
14.
strSender = txtKW 
15.
strCopyVon = ListBox2.List(i) 
16.
strDirPath = txtSpeicherPfad 
17.
strCopyVonPath = Left(strCopyVon, InStrRev(strCopyVon, "\") - 1) 
18.
strCopyVonFolder = Mid(strCopyVonPath, InStrRev(strCopyVonPath, "\") + 1) 
19.
 
20.
CreateObject("Scripting.FileSystemObject").CopyFolder strCopyVonPath, strDirPath & "\" & strCopyVonFolder 
21.
 
22.
End Sub
ABER - wo\wie übergebe ich den Inhalt der Schleife?

Kanns drehen und wenden - sorry ich komm ned drauf.

Gruß Manuel
Bitte warten ..
Mitglied: bastla
12.10.2008 um 19:52 Uhr
Hallo manuel5!

Du brauchst eigentlich nur zwei Teile:
01.
Private Sub cmdRechnungSuchen_Click() 
02.
Dim sInhalt As String 
03.
Dim strDirDate As String 
04.
Dim strSender As String 
05.
Dim strVerzeichnis As String 
06.
 
07.
 
08.
 
09.
strDirDate = DTPicker3 
10.
strSender = TextBox41 
11.
nDate = Format(DTPicker3, "yymmdd") 
12.
strDirDate = nDate 
13.
sInhalt = txtSuchBox 
14.
Pfad = strVerzeichnis & "\" & strDirDate & "\" & strSender & "\*.*" 
15.
Suchbegriff = txtSuchBox 
16.
ListBox2.Clear 
17.
 
18.
If txtSpeicherPfad = "" Then 
19.
    MsgBox "Bitte Ordner anlegen" 
20.
    cmdOrdnerAnlegen.SetFocus 
21.
Else 
22.
    If txtSuchBox = "" Then 
23.
        MsgBox "Bitte erst Suchbegriff eingeben" 
24.
        txtSuchBox.SetFocus 
25.
    Else 
26.
        Set objShell = CreateObject("WScript.Shell") 
27.
 
28.
        CommandLine = "%comspec% /c findstr /m /s /i /c:""" & Suchbegriff & """ """ & Pfad & """ " 
29.
 
30.
        Set objExecObject = objShell.Exec(CommandLine) 
31.
        If Not objExecObject.StdOut.AtEndOfStream Then 
32.
            Filelist = Split(Trim(objExecObject.StdOut.ReadAll()), vbCrLf) 
33.
            For i = 0 To UBound(Filelist) - 1 
34.
                ListBox2.AddItem Filelist(i)  
35.
            Next 
36.
        Else 
37.
            ListBox2.AddItem "Datei nicht gefunden" 
38.
        End If 
39.
		 
40.
    End If 
41.
End If 
42.
 
43.
End Sub
Wenn der Button "cmdRechnungSuchen" angeklickt wurde, ist (aufgrund des obigen Sub) das Ergebnis die Liste aller gefundenen Rechnungen (oder eben "Datei nicht gefunden") in "ListBox2".

Sobald nun das Kopieren mit Klick auf "cmdRechnungKopieren" gestartet wird, soll jede gewählte Datei (zu erkennen an der "Selected()"-Eigenschaft des jeweiligen "ListBox2"-Eintrages) kopiert werden. Das Kopieren kann in ein eigenes Sub ausgelagert, oder, wie unten gezeigt, gleich in die Ausleseschleife integriert werden:
01.
Private Sub cmdRechnungKopieren_Click() 
02.
'Dim strDirZiel As String 
03.
Dim strDirDate As String 
04.
Dim strDirPath As String 
05.
Dim strCopyVon As String 
06.
Dim strSender As String 
07.
Dim Pfad As String 
08.
Dim i As Long 
09.
 
10.
 
11.
 
12.
nDate = Format(frmTickets.DTPicker3, "yymmdd") 
13.
'strDirZiel = "Z:\test\" 
14.
strDirDate = nDate 
15.
strSender = txtKW 
16.
strDirPath = txtSpeicherPfad 
17.
 
18.
For i = 0 To ListBox2.ListCount - 1 
19.
    If ListBox2.Selected(i) = True Then 
20.
        strCopyVon = ListBox2.List(i) 
21.
        strCopyVonPath = Left(strCopyVon, InStrRev(strCopyVon, "\") - 1) 
22.
        strCopyVonFolder = Mid(strCopyVonPath, InStrRev(strCopyVonPath, "\") + 1) 
23.
 
24.
        CreateObject("Scripting.FileSystemObject").CopyFolder strCopyVonPath, strDirPath & "\" & strCopyVonFolder 
25.
 
26.
	End If 
27.
Next i 
28.
 
29.
End Sub
Dabei gelten dann für alle Dateien die selben Werte für "strDirDate", "strSender" und "strDirPath".

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
12.10.2008 um 20:13 Uhr
Oh mein Gott - natürlich! Mannmannmann!

Danke dir, abundzu steht ich echt aufn Schlauch

Super danke dir !

Gruß Manuel
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

VBA: nach ausgewählten Kriterien filtern

Frage von BerndVorwerkMicrosoft Office7 Kommentare

Hallo an alle. Auch auf die Gefahr hin, dass ich euch so langsam auf die Nerven gehe, aber ich ...

VB for Applications

Excel VBA - Auswahl aus Listbox bearbeiten

Frage von MasterSchlumpfVB for Applications1 Kommentar

Hallo Profis, ich benötige Eure Hilfe in Excel VBA. Ich lasse den Inhalt einer Tabelle in einer Listbox anzeigen. ...

VB for Applications

Excel 2010 vba mehrspaltige listbox

Frage von AsciWhiteVB for Applications11 Kommentare

Hallo, ich versuche Daten aus einer Access-Datei in eine ListBox auf einer Userform einzulesen. Dazu habe ich die ListBox ...

VB for Applications

Excel VBA: Listbox Ausgabe über Comboboxen filtern

gelöst Frage von JuweeeVB for Applications2 Kommentare

Hallo, hat jemand zufällig ein Beispiel oder einen Link in peto, der zeigt wie die Ausgabe in einer Listbox ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 3 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement19 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...