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.

VBA wenn verschiedene Zellen nicht leer dann
#1
Hallo miteinander und ein frohes neues Jahr.

Dürfte ich Euch zu meinem "Problem" befragen?

Ich möchte am Ende, dass verschiedene schon bestehende und nicht veränderbare Blätter als PDF abgespeichert werden. Das selbst ist nicht das Problem.
Hierzu sollen aber in dem Namen bestimmte Zellinhalte, so diese denn befüllt sind, enthalten sein.

Bei den Anfangs nur zwei Zellen war mein Ansatz eigentlich, eine if Abfrage -> wenn Zelle nicht leer, dann so wie in dem nachfolgenden Schnipsel in den verschiedenen Varianten die entsprechenden Zellen auflisten.

Code:
pdfDateiName = ActiveSheet.[A1] & "_A" & [A5] & "_" & [B9] & "_" & "XYZ" & [F14] & "_" & [D18] & "_ABC" & ".pdf"

Mittlerweile habe ich aber bis zu 6 Zellen die beschrieben sein können.
Da sind mir die Varianten zu viele. Das ist, mal abgesehen davon, dass es sicherlich total peinliches Kindergarten VBA ist - was anderes kann ich aber nicht, so zu umständlich.

Könnte man das nicht so machen, dass man das sozusagen vorher im Code sortiert?
So, dass man jede Zelle vorher mit dem zugehörigen Textfeld (als Bsp.: "_A") verbindet, und wenn diese Zelle beschrieben ist, wird sie in dem -pdfDateiName- aufgeführt.
Ist sie leer, wird weder sie noch der Textzusatz aufgeführt.

Wie könnte man das angehen?

liebe Grüße
Klaus
Antworten Top
#2
Hallo

was haelst du von dieser Code Version oder einer daraus entwickelten eigenen Version?  Mein Beispiel dient ja nur zur gedanklichen Anregung der eigenen Kreativitaet. Wenn du die V1 bi V6 geschickt deklarierst kannst du auch die Zwischentext wie "XYZ" direkt mit einfügen. Optimal ist es wenn du alle sechs Variablen nur mit "&" Zeichen zum gesamt String für dien PDF Dateinamen zusammenfassen kann

Code:
Sub Test()
Dim V1, V2, V3, V4, V5, V6
Dim Vges As String

If [a2] <> "" Then V1 = [a2]
If [b2] <> "" Then V2 = [b2]
'usw. bis V6

Vges = V1 & V2 & V3 & V4 & V6 & V6    'oder
pdfDateiName = V1 & V2 & V3 & V4 & V6 & V6
End Sub
mfg Gast 123
Antworten Top
#3
Hallo Gast 123,

jaaa das sieht ja schon fantastisch aus.
Und ich gehe voll mit deinem Vorschlag mit, nur eben wie füge ich hier noch die Textpassagen mit an?

Sollte das etwa so gehen?

If [a2] <> "" Then V1 = [a2] & "_A"

Liebe Grüße
Klaus

Hallo Gast 123,

verflixt, das geht wirklich so :D

Wunderbar. Vielen herzlichen Dank!

Liebe Grüße
Klaus
Antworten Top


Gehe zu:


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