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

wenns mit VBA

Forumthread: wenns mit VBA

wenns mit VBA
07.06.2022 11:52:53
Rudi
Hallo zusammen
In meiner Bsp.-Mappe durchsuche ich 6 "Datumsspalten" mit jeweils 3 zugehöhrigen Auswahlspalten
für Eintragungen (egal ob Zahl oder Buchstabe) . Mein vorhandener Code funktioniert soweit gut.
Nun kann es sein dass es viel mehr als 6 Datumsspalten gibt und so mein Code sehr lange würde.
Meine Versuche mit einer Spalten-Variablen zu arbeiten waren bisher alle erfolglos.
Ich wäre gespannt über eine mögliche Lösung des Problems.
Besten Dank im voraus
Gruss
Rudi
https://www.herber.de/bbs/user/153443.xlsm
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenns mit VBA
07.06.2022 12:13:39
GerdL
Hallo Rudi,
was an deinem Konstrukt ist konstant?
immer Datum1, Datum2, Datum3, drei Auswertungsspalten mit 2 Spalten Abstand zu den "Datumsspalten";
immer 3 Werte(x oder Zahl) je Zeile in den "Datumsspalten?
Gruß Gerd
AW: wenns mit VBA
07.06.2022 12:58:36
Rudi
Hallo Gerd
Konstant bleiben:
- Die 3 Auswertungsspalten "Datum1 Datum2 Datum3" bleiben immer, sind aber auf einem
anderen Blatt und werden um x Zeilen erweitert.
- Die "Datumsspalte (jeweils ein Datum und 3 Eintragsspalten)" wird um ein Vielfaches (zw. ca.50 und 100 Mal) zu den
bestehenden 6 "Datumsspalten" in der Bsp.- Mappe hinzugefügt.
Auch da werden die Zeilen erweitert.
- Werte (x oder Zahl) je Zeile, von keinem bis 3 Werte, über alle Eintragsspalten der "Datumsspalten".
Gruss
Rudi
Anzeige
AW: wenns mit VBA
07.06.2022 12:52:17
Rudi
Hallo,

Private Sub CommandButton2_Click()
Dim s As Long, z As Long
Dim iAnz As Long, iERG As Long
iAnz = Application.Count(Rows(1))
iERG = iAnz * 3 + 3
Range(Cells(2, iERG), Cells(19, iERG + 2)) = "---"
For z = 2 To 19
For s = 1 To iAnz * 3 - 2 Step 3
If Cells(z, s)  "" Then Cells(z, iERG) = Cells(1, s)
If Cells(z, s + 1)  "" Then Cells(z, iERG + 1) = Cells(1, s)
If Cells(z, s + 2)  "" Then Cells(z, iERG + 2) = Cells(1, s)
Next s
Next z
End Sub
Gruß
Rudi
Anzeige
AW: wenns mit VBA
07.06.2022 14:00:08
Rudi
Hallo Rudi
Danke für deine verbesserte Variant. Ich bringe die Resultate aber einfach nicht
auf eine anderes Tabellenblatt. Gibt es da eine einfache Lösung ?
Gruss
Rudi
AW: wenns mit VBA
07.06.2022 14:14:39
GerdL
Moin

Private Sub CommandButton2_Click()
Dim s As Long, z As Long
Dim iAnz As Long, iERG As Long
iAnz = Application.Count(Rows(1))
'iERG = iAnz * 3 + 3
iERG = 1
Worksheets("Tabelle2").Range(Worksheets("Tabelle2").Cells(2, iERG), _
Worksheets("Tabelle2").Cells(19, iERG + 2)) = "---"
For z = 2 To 19
For s = 1 To iAnz * 3 - 2 Step 3
If Cells(z, s)  "" Then Worksheets("Tabelle2").Cells(z, iERG) = Cells(1, s)
If Cells(z, s + 1)  "" Then Worksheets("Tabelle2").Cells(z, iERG + 1) = Cells(1, s)
If Cells(z, s + 2)  "" Then Worksheets("Tabelle2").Cells(z, iERG + 2) = Cells(1, s)
Next s
Next z
End Sub
Gruß Gerd
Anzeige
AW: wenns mit VBA
07.06.2022 15:47:32
Rudi

Private Sub CommandButton2_Click()
Dim s As Long, z As Long
Dim iAnz As Long, lCount As Long
Dim wksZIEL As Worksheet
Set wksZIEL = Worksheets("Tabelle2") 'anpassen
lCount = Cells(1, 1).CurrentRegion.Rows.Count
iAnz = Application.Count(Rows(1))
With wksZIEL.Cells(1, 1).CurrentRegion
.Offset(1).Resize(.Rows.Count - 1, 3) = "---"
End With
For z = 2 To lCount
For s = 1 To iAnz * 3 - 2 Step 3
If Cells(z, s + 0)  "" Then wksZIEL.Cells(z, 1) = Cells(1, s)
If Cells(z, s + 1)  "" Then wksZIEL.Cells(z, 2) = Cells(1, s)
If Cells(z, s + 2)  "" Then wksZIEL.Cells(z, 3) = Cells(1, s)
Next s
Next z
End Sub

Anzeige
AW: wenns mit VBA
07.06.2022 16:01:40
Rudi
Hallo Gerd, Hallo Rudi
Danke, danke für eure verbesserten Versionen, es läuft wie gewünscht ☺.
Für ein "anderes Tabellenblatt" habe ich inzwischen auch eine Lösung gefunden.
Es grüsst
Rudi
;

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