Hallo und Danke - aber funktioniert nicht weil ich mich blöd ausgedrückt habe.
Meine Mappe hat ein Arbeitsblatt Kunden. Von diesem Arbeitsblatt möchte ich die Anrede "Cx" den Namen "Dx" und eine Nummer "AZx"
auf ein weiteres Arbeitsblatt LNKV --- so in AZx ein Wert steht --
übernehmen.
Da sich das Blatt noch in Entwicklung befindet haben sich die Zellenbezüge geändert.
Der Wert aus "Cx" Kunden soll nach "C4" LNKV
"Dx" "C5"
"AZx" "M5" LNKV.
Ist in AZx kein Wert soll zu nächsten DS gegangen werden.
Ich hatte es mit der erweiterten Variante versucht, aber sobald kein Wert steht in AZx wird trotzdem ein DS geschrieben.
Option Explicit
Sub LN_KV1()
Dim n%
Dim Zeilenzahl As Long, LRow As Long
Application.ScreenUpdating = False
Cells(4, 13) = ""
With Sheets(1)
'Zeilenzahl Blatt1
LRow = .Cells(.Rows.Count, "D").End(xlUp).Row
For n = LRow To 2 Step -1
ActiveSheet.Unprotect
If .Cells(n, 52).Interior.Color = RGB(112, 48, 160) Then 'Zellenfarbe AZ Lila
If .Cells(n, 52).Value = "" Then GoTo weiter
If Application.CountIf(.Range("AZ:AZ"), .Cells(n, "AZ")) = 1 Then
Sheets("LNKV").Cells(4, 3).Resize(1, 1).Value = .Range("C" & n).Value 'Anrede
Sheets("LNKV").Cells(5, 3).Resize(1, 1).Value = .Range("D" & n).Value 'Name
Sheets("LNKV").Cells(5, 13).Resize(1, 1).Value = .Range("AZ" & n).Value 'KVNr
End If
LN_KV2_nichtAusf?hren 'Aufruf von LN_KV2 Sub
End If
'Stop
weiter:
Next
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Das ist der Sub zu speichern des Tabellenblatts in eine Datei:
Option Explicit
Sub LN_KV2_nichtAusf?hren()
Dim Path As String, FName As String
Dim Monat As Variant
Dim Name As Variant
Monat = Cells(1, 3)
Name = Cells(5, 3)
'Pfad generieren
Path = "P:\001_Dokumente\1_LNKV" & Range("C1") & ""
'Erzeugen
If Not FolderCreate(Path) Then
MsgBox Path, vbCritical, "Kann Pfad nicht erzeugen:"
Exit Sub
End If
'Dateiname generieren
FName = Format(Now, "dd.mm.yyyy_hh.mm.ss__") & Monat & "_" & Name & "_LNKV_" & ".PDF"
'Exportieren
ActiveSheet.ExportAsFixedFormat xlTypePDF, Path & FName
'Monat = ""
'Name = ""
Application.Wait Now + TimeSerial(0, 0, 2) 'wartet 4 Sekunden
End Sub
Private Function FolderCreate(ByVal Path As String) As Boolean
'Creates a complete sub directory structure
Dim Temp, i As Integer
On Error GoTo ExitPoint
If Dir(Path, vbDirectory) = "" Then
If Right$(Path, 1) = "" Then Path = Left$(Path, Len(Path) - 1)
If Left$(Path, 2) = "\" Then
i = InStr(3, Path, "")
Temp = Split(Mid$(Path, i + 1), "")
Temp(0) = Left$(Path, i) & Temp(0)
Else
Temp = Split(Path, "")
End If
Path = ""
For i = 0 To UBound(Temp)
Path = Path & Temp(i) & ""
If Dir(Path, vbDirectory) = "" Then MkDir Path
Next
End If
FolderCreate = True
ExitPoint:
End Function