Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

PDF Datei über Userform an der richtigen Stelle anhängen
#1
Hallo Zusammen,

ich melde mich nochmal wegen der Datenbank mit Eingabe- und Suchmaske. Für die Eingabe müssen Kalibrierungszertifikate für die erfassten Bauteile angehängt werden. Das würde ich gerne über eine Userform machen, die sich nach dem Eingeben der Datei automatisch öffnet.

Das Zertifikat (PDF) soll im Reiter Kalibrierungszertifikate auf dem Data Worksheet an der richtigen Position angehängt werden. Meine Idee war es, dass die Userform nach der Seriennummer sucht und durch ein Offset die richtige Position für das Zertifikat findet und anhängt.
Ist es möglich, dass jeder Nutzer der Datenbank zum Anhängen der PDF auf den Ordner geführt wird, in dem alle Zertifikate liegen und man nur noch auf die Datei klicken/doppelklicken muss?

Fragen:
1. Gibt es bessere/einfachere Vorschläge?
2. Wie würde ich die Userform nach der Seriennummer suchen lassen - der einzige Wert, der neben der Position einmalig ist.
3. Wie lasse ich über die Userform Pdf Dateien anhängen?

Eine möglichst zensierte Datei ist hier angehangen.

LG, Justin


Angehängte Dateien
.xlsm   Test.xlsm (Größe: 786,85 KB / Downloads: 12)
Antwortento top
#2
Vielleicht so:

Code:
Private Sub CommandButton1_Click()
   Dim f As Office.FileDialog
   Set f = Application.FileDialog(msoFileDialogFilePicker)
   With f
       .AllowMultiSelect = False                 'Nur eine Datei auswählbar
       .ButtonName = "Auswählen"                 'Button Beschriftung
       .Filters.Clear                            'erst alle Filter löschen
       .Filters.Add "Pdf-Dateien", "*.pdf"     'dann eigene anlegen
       .InitialFileName = "C:\"                  'Startverzeichnis
       .Show
   End With
   Dim d As String
   If f.SelectedItems.Count > 0 Then ' Prüfen auf 'Abbrechen'-Button
       d = f.SelectedItems(1)
   End If
   Columns("G:G").Find(TextBox1, LookIn:=xlValues, lookat:=xlWhole).Offset(, 2).Value = d
'Nach dem Anhängen soll sich diese Userform wieder schließen
Me.Hide

End Sub

Ausprobieren und anpassen.

Gruss, Raoul
[-] Folgende(r) 1 Benutzer sagt Danke an Raoul21 für diesen Beitrag:
  • JustinHentschel
Antwortento top
#3
Hallo,

(19.08.2020, 13:40)Raoul21 schrieb:
Code:
'Nach dem Anhängen soll sich diese Userform wieder schließen
Me.Hide

es gibt da einen kleinen Unterschied: Wink
Me.Hide
'Userform wird ausgeblendet
Unload Me
'Userform wird geschlossen

Gruß Uwe
[-] Folgende(r) 1 Benutzer sagt Danke an Kuwer für diesen Beitrag:
  • JustinHentschel
Antwortento top
#4
Hallo Raoul und Uwe

vielen Dank für deine Hilfe! Genau das, wonach ich gesucht habe.

Allerdings ist es jetzt so, dass ich in der Zelle den Dateipfad und nicht die Datei selbst als Hyperlink hinzugefügt habe. Welche Änderung müsste ich dann vornehmen?

Wenn ich Unload.Me einsetze bekomme ich eine Fehlermeldung - bei Me.Hide nicht. Woran kann das liegen? Nutze den von Raoul geschriebenen Code.

LG, Justin
Antwortento top
#5
Ich denke das Problem ist, dass ich nicht den Value von der Variable "d" eintragen muss, sondern "d" als Hyperlink eintragen muss.

Bisher werden die einzelnen Values so eingetragen:


Zitat:.Offset(1, 0) = txtProjekt.Value
    .Offset(1, 1) = cboHersteller.Value
    .Offset(1, 2) = txtMFC.Value
    .Offset(1, 3) = cboMedium.Value
    .Offset(1, 4) = cboGewinde.Value
    .Offset(1, 5) = txtSerial.Value
    .Offset(1, 6) = txtInvest.Value
    .Offset(1, 7) = txtTeststand.Value
    .Offset(1, 8).Hyperlink = d


Natürlich klappt das mit dem .Hyperlink aktuell nicht - wie würde es denn richtig aussehen? Auch ein d.Hyperlink oder Ähnliches klappt nicht...

Zitat: .Offset(1, 8) = "=HYPERLINK(&d)"

Habe mal das ausprobiert - ohne das "&" gibt der einen Hyperlink an, den er nicht benennt. Wie schreibe ich es richtig, dass die Variable d richtig ausgelesen wird?
Antwortento top
#6
wenn du ne formel eingibst ,dann könnte es ratsam sein auch .offset(1,8) . formula = "=Hyperlink........    zu verwenden.
Das ist aber nur eine Idee.
[-] Folgende(r) 1 Benutzer sagt Danke an ralf_b für diesen Beitrag:
  • JustinHentschel
Antwortento top
#7
(21.08.2020, 07:43)JustinHentschel schrieb: Wenn ich Unload.Me einsetze bekomme ich eine Fehlermeldung - bei Me.Hide nicht. Woran kann das liegen?
Es heißt ja auch Unload Me statt Unload.Me!
Also Punkt weg, Leerzeichen hin.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Benutzer sagt Danke an RPP63 für diesen Beitrag:
  • JustinHentschel
Antwortento top
#8
Das müsste das Problem sein, danke!

Wie würde der Code denn aussehen, wenn ich den Pfad unter "d" speichere? Ich glaube, dass ich die " bzw. das & falsch setze oder sonst etwas vergesse.

Ich antworte so spät, weil ich heute das erste mal am Arbeitsplatz bin diese Woche...

Vielen Dank bisher für die Hilfe!

LG, Justin
Antwortento top
#9
Hi Justin
Ersetze den Schluss des Makros von oben so:

Code:
   End If
   Worksheets("Filterdata").Hyperlinks.Add anchor:=Columns("G:G").Find(TextBox1, LookIn:=xlValues, lookat:=xlWhole).Offset(, 2), _
         Address:=d, TextToDisplay:="Link"
'Nach dem Anhängen soll sich diese Userform wieder schließen
Me.Hide

End Sub

Nun wird der Text "Link" als anklickbarer Link zur Datei erstellt.

Gruss, Raoul
[-] Folgende(r) 1 Benutzer sagt Danke an Raoul21 für diesen Beitrag:
  • JustinHentschel
Antwortento top
#10
Danke für die Hilfe, doch leider ist das Problem nicht behoben... Es wird kein Link angezeigt an der richtigen Stelle.

Bei den anderen Values habe ich folgendes eingegeben:

Zitat:With Worksheets("Data").Cells(Rows.Count, 2).End(xlUp)
    If IsEmpty([B2]) Then
        [B2].Select
    Else
        [B2].End(xlDown).Offset(1).Activate
    End If
.Offset(1, 0) = txtProjekt.Value
    .Offset(1, 1) = cboHersteller.Value
    .Offset(1, 2) = txtMFC.Value
    .Offset(1, 3) = cboMedium.Value
    .Offset(1, 4) = cboGewinde.Value
    .Offset(1, 5) = txtSerial.Value
    .Offset(1, 6) = txtInvest.Value
    .Offset(1, 7) = txtTeststand.Value

Wie kann ich nun den "Value" des Links angeben auf .Offset(1,8)?

LG, Justin

PS: Vielen Dank, dass hier auch nach so langer Zeit - und sehr wahrscheinlich schlechter Problemdarstellung meinerseits - geantwortet wird!
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste