Hallo M.O.
danke, für deine Geduld mit mir..
Also bei dem (ursprünglichen) Code, klappt das Kopieren von Quell-Tabelle in Zieltabelle.
Sub LM()
'
' LM Makro
'
Dim WkSh_Q As Worksheet
Dim WkSh_Z As Worksheet
Dim rZelle As Range
Dim aUeberschr As Variant
Dim iIndx As Integer
Dim iSpalte As Integer
aUeberschr = Array("Lager Nr.", "Art.-Nr.", "Art.-Bez.", "Sortimentskennzeichen", "WG", "Verfügbarer Bestand", "Summe Best. (sync, BT)", "Durchschn. Tagesabgang", "Erster Zugang", "Letzter Wareneingang", "Letzter Abgang", "Nicht disponieren", "Min. SiB")
Application.ScreenUpdating = False
Set WkSh_Q = Worksheets("Logomate Quelle") ' das Quell-Tabellenblatt
Set WkSh_Z = Worksheets("Filiale") ' das Ziel-Tabellenblatt
With WkSh_Q.Rows(1)
For iIndx = 0 To UBound(aUeberschr)
Set rZelle = .Find(aUeberschr(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iSpalte = iSpalte + 1
WkSh_Q.Columns(rZelle.Column).Copy Destination:=WkSh_Z.Columns(iSpalte)
End If
Next iIndx
End With
Application.ScreenUpdating = True
Dim sPath As String
Dim strUser As String
Dim strPfad As String
Dim strSignatur As String
Dim Body As String
Dim Nachricht As Object, OutlookApplication As Object
Set OutlookApplication = CreateObject("Outlook.Application")
Dim Anhang As String
Anhang = ThisWorkbook.FullName
Set Nachricht = OutlookApplication.CreateItem(0)
With Nachricht
.To = "Empfänger eingeben"
.Subject = "MinSiB Liste"
.Attachments.Add Anhang
'Namen der Signatur definieren
strSignatur = "Standard"
strUser = Environ("Userprofile")
strPfad = strUser & "\AppData\Roaming\Microsoft\Signatures\" & strSignatur & ".htm"
.htmlBody = "<html><body><p>Sehr geehrte Damen und Herren,</p><p>im Anhang erhalten Sie die angeforderte MinSiB Liste. </p>Bitte tragen Sie Ihre Änderungen in die <b>Spalte N</b> ein und senden die Exceltabelle per e-mail an <b>Dispo-Einkauf@Kibek.de</b> zurück.<br> Bei Rückfragen steht Ihnen das Dispositionsteam gern zur Verfügung.<p>Vielen Dank.<p><p></p>" & test(strPfad) & "</body></html>"
.Display
'.Mail.Send
End With
Set OutlookApplication = Nothing
Set Nachricht = Nothing
End Sub
Function test(sPath As String)
test = CreateObject("Scripting.FileSystemObject").OpenTextFile(sPath).ReadAll()
End Function
Was in den Ursprungscode fehlt:
- Im Zieltabellenblatt "Filiale" (dorthin sollen die Quelldaten eingefügt werden) soll die Spalte "Nicht disponieren" (Spalte L) ab Zeile 2 mit den Inhalten von 0 durch "Dispo" oder 1 durch "nicht Dispo" ersetzt werden. Das Zieltabellenblatt soll überschrieben werden (sofern Daten vorhanden sind), wenn neue Daten in der Quelldatei "Logomate Quelle" sind und das Makro ausgelöst wird.
- Statt der gesamten Datei soll nur das Zieltabellenblatt "Filiale" an den Mailanhang gehängt werden.
- schön wäre noch, wenn die Spaltenbreite im Zieltabellenblatt auf die optimale Breite formatiert werden könnte.
Soll ich die Datei mal zusenden?
LG, Inga