Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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
Anzeige
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige