Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1668to1672
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Mit Checkbox suchen und Datei kopieren
14.01.2019 15:29:02
Richard
Liebe Excelfreunde,
ich bitte Euch um Hilfe für folgendes Problem.
Meine Tabelle1 schaut wie folgt aus
A B C D E F G H I
Pro1 Bild ChBox1 Pro2 Bild ChBox2 Pro3 Bild ChBox3
Pro4 Bild ChBox4 Pro5 Bild ChBox5 Pro6 Bild ChBox6
Pro7 Bild ChBox7 Pro8 Bild ChBox8 Pro9 Bild ChBox9
A2= Prospektname hier Pro1
B2= Bild Deckblatt Prospekt
C2= CheckBox hier ChBox1 es sind 30 Checkboxen pro Zeile 3 (C2,F2,I2)usw.
Ablauf: Wenn Checkbox1=True dann suche im Ordner "Prospekte" (C.\Test\Prospekte\ nach den Namen von A2(Pro1) und kopiere das pdf Dokument(Pro1.pdf) in den Ordner "Versand" (C.\Test\Versand\).
Ich finde mit meinen bescheidenen VBA Kenntnissen keinen Ansatz wie der Aufbau ist mit der Schleife.
Im voraus vielen Dank für Eure Hilfe
Gruß Richard

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Checkbox suchen und Datei kopieren
14.01.2019 18:28:55
Piet
Hallo Richard
ich schicke dir mal einen sog. simpel Makro Code der aus dem Herber Forum stammt.
Habe ihn selbst nicht getestet, denke aber das er funktioniert.
Du wirst nicht umhin kommen dch ein wenig mit VBA Grundwissen zu beschaeftigen, denn der Code muss über Offset auf die richtige Zelle mit dem Datei Namen (PDF) angepasst werden! Die 1. MsgBox zeigt dir die Adresse der linken oberen Ecke jeder KontrollBox nach dem Anklicken. Die müssen bei 30 Stück bitte auch genau sauber ausgerichtet sein!
Die 2. MsgBox zeigt dir den Wert über Offset(x,x), d.h., neben unter oder über dieser Zelle. Dafür gibt es ein kleines Demp Programm das dir die Zellverschiebung anzeigt. Für Recht oder unten gelten Plus Zahlen von 0 bis x, für links oder oben gelten -Zahlen!
Erst wnn du herausgefunden hast wie du die PDF Datei aus der richtigen Zelle laedst kannst du die Zahlenwerte ins Kopier Makro an Stelle von "x,y" eingeben, und diesen Befehl im Kopiermakro entfernen. danach sollte das Makro laufen!
Call RichtigeZelle_finden '** zuerst Offset finden!!
Exit Sub - '** diesen Teil erst nach dem Finden von Offset löschen
Den 30 Kontroll Boxen must du allen das gleiche Makro zuweisen, "BeiKlick_PDF_kopieren"
Das Makro startet nur beim Haeckchen für KontrollBox "aktiv" und kopiert diese PDF Datei
mfg Piet
Sub BeiKlick_PDF_kopieren()
Dim sQuelle$, sZiel$, sDatei$
Dim ZellAdr As String
Call RichtigeZelle_finden  '** zuerst Offset finden!!
Exit Sub
'** diesen Teil erst nach dem Finden von Offset löschen
'nur bei aktiver CheckBox Makro ausführen
If ActiveSheet.CheckBoxes(Application.Caller).Value = 1 Then
'Adresse der oberen linken Zelle des Objekts
ZellAdr = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
'Datei aus aktiver Zelle über Offset laden
'** hier bei x,y Zahlenwerte eingeben!!
sDatei = Range(ZellAdr).Offset(x, y).Value
sDatei = Range(ZellAdr).Offset(x, y) & ".pdf"
'Aussprung bei Fhler - keine Datei gefunden!
If sDatei = "" Then MsgBox "keine Datei gefunden": Exit Sub
sQuelle = "C:\Test\Prospekte\"
sZiel = "C.\Test\Versand\)"
If Dir(sZiel & sDatei) = "" Then
FileCopy sQuelle & sDatei, sZiel & sDatei
MsgBox "Datei wurde kopiert!"
Else
MsgBox "Datei war schon vorhanden!"
End If
End If
End Sub
'dieser Teil ist nur ein Demo Code zum finden des Offset(z,s)
Sub RichtigeZelle_finden()
Dim sQuelle$, sZiel$, sDatei$
Dim ZellAdr As String, j, s, z
'Adresse der oberen linken Zelle des Objekts
ZellAdr = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address(0, 0)
'MsgBox zum Testen der Zell Adresse!!
Range(ZellAdr).Select
MsgBox ZellAdr & " - das ist die obere linke Zelle der Kontroll Box"
'Offset mit Zahlen 0,1,2,3 austesten
'offset(0,x) verschiebt die Zelle nach rechts
'offset(y,0) verschiebt die Zelle nach unten
'offset(y,x) verschiebt die Zelle diagonal - nach rechts und unten
'für verschieben nach links -1, nach oben -1 - Offset(-1,-1)
On Error Resume Next
For j = 0 To 2
Range(ZellAdr).Offset(0, j).Select
MsgBox j & "  " & Selection.Value & "  Wert der Zelle nach rechts"
Next j
For j = 0 To 2
Range(ZellAdr).Offset(j, 0).Select
MsgBox j & "  " & Selection.Value & "  Wert der Zelle über unten"
Next j
For j = 0 To 2
Range(ZellAdr).Offset(0, -j).Select
MsgBox j & "  " & Selection.Value & "  Wert der Zelle nach links"
Next j
For j = 0 To 2
Range(ZellAdr).Offset(-j, 0).Select
MsgBox j & "  " & Selection.Value & "  Wert der Zelle über oben"
Next j
End Sub

Anzeige
AW: Mit Checkbox suchen und Datei kopieren
14.01.2019 20:53:34
Richard
Hallo Piet,
vielen Dank für die Zusendung des Codes.Ich habe nur Verständnisprobleme, es geht um die Anpaasung der Zelle ist hier die genaue Position Offset der Checkbox gemeint? Muss ich dann für jede checkBox dies anlegen?
Liebe Grüße Richard
AW: Mit Checkbox suchen und Datei kopieren
15.01.2019 14:01:53
Piet
Hallo Richard
ich stelle mal eine kleine aber sicher sehr interessante Beispieldatei ins Forum für Objekte auflisten und per VBA bearbeiten. Du wirst sicher überrascht sein wie einfach man 30 Ojekte in Höhe Breite, Top und Left auf dem Blatt akurat auf 10tel Millimeter einstellen kann!
Du bekommst von allen Objekten ihre Grösse und ihren Platz angezeigt, mit der Zell Adresse und Placment. Dazu must du in die Pinkfarbene Zelle deinen Tabellen Namen angeben und den Button Tabelle oder Mappe auflisten drücken. Dann siehst du alle Daten!
Zum neu installieren must du aber von Hand den gewünschten Block auf die rechte Seite kopieren, und die hat eine interessante Besonderheit. Beim auflisten siehst du in brauner Farbe zwei Formeln die du runterziehen kannst. Dann siehst du den Abstand von Top und Left zwischen den Objekten! Die Daten benutze ich gerne zum neu installieren.
Beim neu installieren kannst du den ersten Wert für Top und Left lassen, und addierst dann per Formel den oberen ékonstant Wert" für Top und Left dazu. Dann sind alle Objekte Millimetergenau ausgerichtet. Das ist vor allem wichtig für gleichbleibende Zell Adressen der Linken TopZelle!
Der Offset von dieser Adresse ist bei exakt ausgerichteten Zellen immer gleich! Und muss somit für alle 30 Objekte nur ein einziges mal ermittelt werden. Das solltest du schaffen. Sonst schicke mir eine Beispieldatei mit ca. 5 KontrollBoxen wie im Original, damit ich mir das ansehen kann.
Was die meisten nicht beachten ist, wenn ein Objekt nur um 0,1 Millimeter die naechste obere Ecke berührt haben wir schon eine andere Zell Adresse. Und 30 Objekte von Hand perfekt ausrichten ist kaum möglich. Per VBA ist das ein Kinderspiel.
Viel Spass beim Test. Kopiere mal das Blatt mit den Objekten aus der Originaldatei ins Beispiel, da kannst du nach Herzenslust rum experimentieren ohne diene Originalkdatei kaputt zu machen! Wenn du den Dreh mit dem Installieren raus hast kannst du es im Original machen.
Wenn wir konstante Zell Adressen haben das Makro über Offset zum laufen bringen ist ein Kinderspiel!
mfg Piet
https://www.herber.de/bbs/user/126774.xlsm
Anzeige
AW: Mit Checkbox suchen und Datei kopieren
15.01.2019 19:58:05
Richard
Hallo Piet,
vielen Dank für Deine tatkräftige Hilfe Du kannst echt gut erklären. Werde morgen mich über die beiden Makros hermachen.Bin mir sicher dass ich es schaffen werde.
Vielen Dank und liebe Grüße
Richard

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige