14.02.2019, 12:43
(Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2019, 15:37 von WillWissen.
Bearbeitungsgrund: Codetags
)
Hallo,
Mit Hilfe von Sabina, dem flotten Feger habe ich den folgenden VBA Code
Nun möchte ich, dass neben B2 und M31 bzw. M32 auch noch M35 in das zu erstellende Tabellenblatt kopiert wird in Spalte C
Meine Idee wäre, einfach den Code abzuändern:
Meine Abänderung habe ich fett markiert im Code. Logischerweise wird allerdings nun nur der Wert aus M31 bzw. M32 überschrieben...Müsste ich korrekterweise aus dem .Offset(, 1)
.Offset(, 2) machen?
Ein weiterer Punkt der mir Probleme bereitet ist, dass immer zwei Tabellenblätter erstellt werden. Sollte allerdings der Wert in M31 = 0 sein, soll kein weiteres Tabellenblatt erstellt werden.
Über Hilfe wäre ich sehr dankbar
Mit Hilfe von Sabina, dem flotten Feger habe ich den folgenden VBA Code
Code:
Option Explicit
Function WorkSheetExists(ByVal WS As String) As Boolean
On Error Resume Next
WorkSheetExists = Not Worksheets(WS) Is Nothing
End Function
Sub Bestelldatei()
Dim WS As Worksheet
Application.ScreenUpdating = False
If WorkSheetExists(Worksheets("Bestand").Range("E4")) Then
Set WS = Worksheets(Worksheets("Bestand").Range("E4").Value)
Else
Set WS = Worksheets.Add(after:=Worksheets(3))
WS.Name = Worksheets("Bestand").Range("E4")
End If
With WS
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Bestand").Range("B2").Value
.Cells(.Rows.Count, 1).End(xlUp).Offset(, 1).Value = Sheets("Bestand").Range("M32").Value
[b] .Cells(.Rows.Count, 1).End(xlUp).Offset(, 1).Value = Sheets("Bestand").Range("M35").Value[/b]
MsgBox "Hinzugefügt zu " & Worksheets("Bestand").Range("E4").Value
End With
If Worksheets("Bestand").Range("M31").Value <> "" Then
If WorkSheetExists(Worksheets("Bestand").Range("E5")) Then
Set WS = Worksheets(Worksheets("Bestand").Range("E5").Value)
Else
Set WS = Worksheets.Add(after:=Worksheets(3))
WS.Name = Worksheets("Bestand").Range("E5")
End If
With WS
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Bestand").Range("B2").Value
.Cells(.Rows.Count, 1).End(xlUp).Offset(, 1).Value = Sheets("Bestand").Range("M31").Value
[b].Cells(.Rows.Count, 1).End(xlUp).Offset(, 1).Value = Sheets("Bestand").Range("M35").Value[/b]
MsgBox "Hinzugefügt zu " & Worksheets("Bestand").Range("E5").Value
End With
End If
Application.ScreenUpdating = True
End Sub
Nun möchte ich, dass neben B2 und M31 bzw. M32 auch noch M35 in das zu erstellende Tabellenblatt kopiert wird in Spalte C
Meine Idee wäre, einfach den Code abzuändern:
Meine Abänderung habe ich fett markiert im Code. Logischerweise wird allerdings nun nur der Wert aus M31 bzw. M32 überschrieben...Müsste ich korrekterweise aus dem .Offset(, 1)
.Offset(, 2) machen?
Ein weiterer Punkt der mir Probleme bereitet ist, dass immer zwei Tabellenblätter erstellt werden. Sollte allerdings der Wert in M31 = 0 sein, soll kein weiteres Tabellenblatt erstellt werden.
Über Hilfe wäre ich sehr dankbar