Clever-Excel-Forum

Normale Version: PDF Datei über Userform an der richtigen Stelle anhängen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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
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
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
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?
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.
(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
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
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
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!
Seiten: 1 2