Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Frage zu Exel VBA - Spalten filtern nach monat

Frage zu Exel VBA - Spalten filtern nach monat
08.07.2017 13:55:13
Martin
Hallo Community,
ich habe schon of hier gelesen und bin auch fast immer fündig geworden.
Jetzt meine erste Frage hier.
Ich habe eine Tabelle welche leider aufgrund der Daten und Datenmegen Spaltenweise aufgebaut ist.
Ab A30 beginnen die Daten - darüber ist Kopf
Die auszuwertenden Daten stehen ab Spalte N immer in 3 Spalten (NOP) dann eine leer Spalte und der nächste Block (RST)
Es geht mir um das Datum welches sich in den Koordinaten der Zeile 28 versteckt - Also P28, T28, X28, AB28 . . . .
Mir wäre es jetzt wichtig, es irgendwie zu schaffen, das sich ein Makro die Zeile28 anschaut und mit z.B. "H5" Verlgleicht, wo ich ein Dropdown habe, welcher einen Monat zeigt.
Beispiel "H5" = Februar
Dann soll er meinetwegen alle Spalten, beginnend N löschen, wo in P28, T28, X28 . . .(ganze zeile 28) nicht ein Datum mit Februar drin ist.
Löschen deswegen, weil ich von A-L eine Auswahl habe (zählen wenn X) und die Spalten die Produkte sind - somit will ich sehen, welche Produkte in dem Zeitraum welche eigenschaften hatten.

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

Betreff
Datum
Anwender
Anzeige
AW: Frage zu Exel VBA - Spalten filtern nach monat
08.07.2017 17:28:06
fcs
Hallo Martin,
nachfolgend ein Makro, das du ggf. noch ein wenig anpassen musst.
Gruß
Franz
Sub CheckDatumsWerte()
Dim wks As Worksheet
Dim strMonat As String, intMonat As Integer
Dim datDatum As Variant
Dim Spalte As Long, Zeile_1 As Long, Zeile_L As Long
Dim StatusCalc As Long
If MsgBox("Datums-Vergleich Zelle H5 mit Datumswerten in Zeile 28 ab Spalte N " _
& "durchführen?", _
vbQuestion + vbOKCancel, "Datumsabgleich") = vbCancel Then Exit Sub
Set wks = ActiveSheet
With wks
'Monats-Text in Dropdown-Auswahl umwandeln
intMonat = fncMonat_Text_to_Number(.Range("H5").Text, True)
If intMonat = 0 Then
Exit Sub
End If
Zeile_1 = 30 'Zeile ab der ggf. Daten gelöscht werden sollen
'letzte benutzte Zeile ermitteln
With .UsedRange
Zeile_L = .Row + .Rows.Count - 1
End With
If Zeile_L 

Anzeige
AW: Frage zu Exel VBA - Spalten filtern nach monat
10.07.2017 07:45:50
Martin
Hallo Franz,
danke für die schnelle Hilfe.
Bisher funktioniert es nicht - ich bin unsicher was ich da noch anpassen kann. Im Step ByStep Modus sehe ich leider nicht was das MAkro macht - werde mich damit auf jedenfall Heute Nachmittag nochmal beschäftigen.
Wenn ich das richtig Lese, wertet das Makro Zeilen aus.
Ich brauche etwas was mir wenn in Bsp P28 das Datum nicht! mit dem Betreffenden Monat Übereinstimmt - die Spalten P (-2) (Also NOP löscht), so das am ende nur noch Spalten stehen, wo der Monat stimmt. So kann meine Formel und mein Makro was ich habe mir die Daten anzeigen.
Danke schonmal im vorraus
Martin
Anzeige
AW: Frage zu Exel VBA - Spalten filtern nach monat
10.07.2017 11:57:34
fcs
Hallo Martin,
ich hab ein paar Varianten zum Löschen eingebaut (nur Werte, komplette Spalten, Zellbereich etc.)
Werden Zellen gelöscht, dann ist es wichtig, dass entweder der Spaltenzähler korrekt arbeitet oder dass die Zellen von rechts nach links gelöscht werden.
Du musst auch sicherstellen, das deine Formeln in den 1. Spalten keinen Bezug-Fehler liefern wenn der 1. oder letzte Zellenblock gelöscht werden.
Gruß
Franz
PS.: Wenn du Aktivitäten im Blatt während der Makroausführung im Schrittmodus beobachten willst, dann musst du das VBA-Fenster etwas verkleinern.
Zusätzlich kannst du im VBA-Fenster unter Ansiht das "Lokalfenster" einblenden. Dann werden dir die Werte der deklarierten Variablen angezeigt bzw. die Eigenscheaften bei Objekt-Variablen.
Sub CheckDatumsWerte()
Dim datDatum As Variant
Dim Spalte As Long, Zeile_L As Long, SpaMax As Long
Dim strMonat As String, intMonat As Integer
Dim Zeile_1 As Long, Zeile_Datum As Long
Dim wks As Worksheet
Dim iAktion As Integer
Dim StatusCalc As Long
Zeile_Datum = 28 'Zeile mit den zu prüfenden Datumswerten
Zeile_1 = 30 'Zeile ab der ggf. Daten gelöscht werden sollen
Set wks = ActiveSheet
With wks
'Monats-Text in Dropdown-Auswahl umwandeln
strMonat = .Range("H5").Text
If MsgBox("Datums-Vergleich Zelle H5 (" & strMonat & ") mit Datumswerten in Zeile " _
& Zeile_Datum & " ab Spalte N durchführen?", _
vbQuestion + vbOKCancel, "Datumsabgleich") = vbCancel Then Exit Sub
intMonat = fncMonat_Text_to_Number(strMonat, True)
If intMonat = 0 Then
Exit Sub
End If
'letzte benutzte Zeile ermitteln
With .UsedRange
Zeile_L = .Row + .Rows.Count - 1
End With
If Zeile_L 

Anzeige
AW: Frage zu Exel VBA - Spalten filtern nach monat
11.07.2017 08:19:31
Martin
Hi Franz,
danke. Jetzt kalappt es dahingehend, das das Makro funktioniert.
Allerdings löscht er mit jetzt den Monat den ich ausgewählt habe. Z.B März.
Wie kann man das jetzt invertieren das er alle anderen ausser März löscht.
(Ich habe schon versucht bei Datum andere Zahlen aber das klappt nicht.)
LG
Martin
AW: Frage zu Exel VBA - Spalten filtern nach monat
11.07.2017 08:35:41
fcs
Hallo Martin,
da hatte ich in deiner ursprünglichen Frage das kleine Wörtchen "nicht" überlesen.
Ändere in den beiden Zeilen
             If VBA.Month(datDatum) = intMonat Then

das Zeichen = in &lt&gt
dann sollte es funktionieren
Gruß
Franz
Anzeige
AW: Frage zu Exel VBA - Spalten filtern nach monat
12.07.2017 07:06:24
Martin
Hallo Franz,
Danke, es funktioniert soweit wie es im Makro steht. Leider wird alles nach " dem letzen des Monats" nicght gelöscht - aber das wenn ich es recht verstehe kann auch nciht gehen - weil das makro sagt schaue die letzte Spalte mit dem Monat und lösche nach links.
Ich probiere gerade eine Schleife das er nach rechts auch schaut - bin nicht sicher ob ich das so auf die schnelle hinbekomme aber die Basis ist geschaffen - Danke

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige