Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Von - Bis Werte über VBA ausschreiben lassen

Von - Bis Werte über VBA ausschreiben lassen
06.07.2016 08:47:53
Christian
Hallo zusammen
Ich habe folgendes Problem:
Ich möchte Inhalte Von - Bis aus einen Tabellenblatt in ein Tabellenblatt nach Artikel schreiben lassen.
Zuerst prüfen ob in Spalte F ein Eintrag "Ja" vorhanden ist. Falls dem so ist nichts machen. Ansonsten:
In Spalte A des Tabellenblatt Temporäre Liste steht der Artikel, z.B. A, dann soll die Spalte D (Von Wert Bsp. 1) und E (Bis Wert Bsp. 20) in das Tabellenblatt A ausgeführt übertragen werden.
Sprich
1
2
3
4
...
20
Im Tabellenblatt Temporäre Liste soll nach dem Übertrag in Spalte F Daten übertragen der Vermerk ja eingetragen werden.
Bei der nächsten Ausführung des Makros sollen dann nur die Daten übertragen werden, bei denen noch kein Ja Eintrag vorhanden ist.
Beispieldatei: https://www.herber.de/bbs/user/106789.xlsx
Folgenden Code habe ich leider nicht zum Laufen gebracht:
Private Sub CommandButton1_Click()
Dim s1 As Worksheet
Dim y1 As Long
Dim s2 As Worksheet
Dim y2 As Long
Dim strArtikel As String
Dim intVon As Integer
Dim intBis As Integer
Dim strBlatt As String
Dim n As Integer
Set s1 = ActiveSheet
y1 = 1 'Evtl. Zeilennummer anpassen !!!
strArtikel = s1.Cells(y1, 1).Value
If (strArtikel  "") Then
intVon = s1.Cells(y1, 4).Value
intBis = s1.Cells(y1, 5).Value
If (intBis > intVon) Then
strBlatt = Right$(strArtikel, 4)
Set s2 = Worksheets(strBlatt)
y2 = s2.Cells(s2.Rows.Count, 1).End(xlUp).Row
For n = intVon To intBis
y2 = y2 + 1
s2.Cells(y2, 1).Value = n
Next n
s1.Cells(y1, 8).Value = "ja"
s2.Activate: s2.Cells(y2, 1).Activate
End If
End If
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Von - Bis Werte über VBA ausschreiben lassen
06.07.2016 09:43:18
baschti007
Soo ?

Sub Blaaaaa()
Dim s1 As Worksheet
Dim y1 As Long
Dim s2 As Worksheet
Dim y2 As Long
Dim strArtikel As String
Dim intVon As String
Dim intBis As String
Dim strBlatt As String
Dim n As Integer
Dim i As Long
Set s1 = Sheets("Temporäre Liste")
y1 = 3 'Evtl. Zeilennummer anpassen !!!
y12 = s1.Cells(s1.Rows.Count, 1).End(xlUp).Row
For i = y1 To y12
If s1.Cells(i, 6).Value = "ja" Then
strArtikel = s1.Cells(i, 1).Value
If (strArtikel  "") Then
intVon = s1.Cells(i, 4).Value
intBis = s1.Cells(i, 5).Value
If (intBis > intVon) Then
strBlatt = Right$(strArtikel, 4)
Set s2 = Worksheets(strBlatt)
y2 = s2.Cells(s2.Rows.Count, 1).End(xlUp).Row
For n = intVon To intBis
y2 = y2 + 1
s2.Cells(y2, 1).Value = n
Next n
s1.Cells(i, 8).Value = "ja"
s2.Activate: s2.Cells(y2, 1).Activate
End If
End If
End If
Next i
End Sub

Gruß Basti

Anzeige
AW: Von - Bis Werte über VBA ausschreiben lassen
06.07.2016 10:20:18
Christian
Genial! Danke vielmals!

Kein Problem =)
06.07.2016 12:30:03
baschti007
Kein Problem =)

AW: Kein Problem =)
06.07.2016 13:41:52
Christian
Ein Problem ist gleichwohl noch aufgetaucht, es kann es geben, dass der Von und Bis Wert identisch sind. In diesem Fall müsste einfach dieser Wert übertragen werden. Momentan wird der Wert nicht bearbeitet sofern Von und Bis identisch sind.
Besten Dank zur Hilfe damit auch dieses Problem gelöst werden kann. Anschliessend bin ich total happy! ;-)

Anzeige
AW: Kein Problem =)
06.07.2016 16:08:38
Bastian
Das = hinter Größer als einfügen ;)

If (intBis >= intVon) Then

AW: Kein Problem =)
07.07.2016 07:13:27
Christian
Manchmal bin ich zu doof! Danke auf alle Fälle!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige