Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
monate - formatproblem in vba!?
27.06.2007 12:18:00
Wissensdurst
hi leute,
erstmal sorry für das neue posting zu einem alten thema, aber ich denke dieser fehler ist eher allgemein und außerdem muss ich das ding bis heute nachmittag fertig haben ;/
und zwar habe ich z.b. folgendes in spalte a und b stehen:
01.07.2005 1
01.03.2005 x
02.07.2005 2
01.04.2005 x
03.07.2005 3
04.07.2005 4
05.07.2005 5
01.09.2005 x
jetzt lasse ich ein makro drüberlaufen (vielen dank hierfür nochmal an die leute aus dem forum), welches in spalta a die zeilen aller monate löscht, die nicht in einer ComboBox ausgewählt wurden. Folgender Quelltext:

Private Sub Loeschen()
Dim lnZ As Long
Dim Monat As Integer
If cboMonat.Value = "Januar" Then Monat = 1
If cboMonat.Value = "Februar" Then Monat = 2
On Error Resume Next
For lnZ = 1 To ActiveSheet.UsedRange.Rows.Count
If Month(Cells(lnZ, 1).Value)  Monat Then Rows(lnZ).Delete Shift:=xlUp
Next lnZ
On Error GoTo 0
End Sub


soweit so gut, ich verstehe was das makro macht und ich halte es auch für richtig, aber das gewünschte ergebnis erscheint nicht, stattdessen kommt folgendes:
beispielsweise, wenn ich juli auswähle:
01.04.2005 x
01.07.2005 1
02.07.2005 2
03.07.2005 3
04.07.2005 4
05.07.2005 5
also alles richtig, bis auf zeile 1. wähle ich jetzt april aus kommt folgendes:
01.04.2005 x
02.07.2005 2
04.07.2005 4
01.09.2005 x
bei allen anderen monaten ist das ergebnis auch völlig verwirrend. da muss doch noch irgendwo ein formatproblem mit den monaten sein, aber ich wüsste nicht welches. wäre super, wenn mir ein "sehender" da weiterhelfen könnte.
vielen dank im voraus
christian

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

Betreff
Datum
Anwender
Anzeige
AW: monate - formatproblem in vba!?
27.06.2007 12:26:39
Rudi
Hallo,
Zeilen muss man von unten löschen!

Private Sub Loeschen()
Dim lnZ As Long
Dim Monat As Integer
Monat = Month("1." & cboMonat.Value)
On Error Resume Next
For lnZ = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Month(Cells(lnZ, 1).Value)  Monat Then Rows(lnZ).Delete Shift:=xlUp
Next lnZ
On Error GoTo 0
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: monate - formatproblem in vba!?
27.06.2007 13:06:00
Wissensdurst
vielen dank rudi, das funktioniert schonmal super. das sind eben dinge, die einem als laie echt nicht auffallen ;)
kannst du mir zufällig auch noch sagen, wie das ganze dann aussieht, wenn ich nur noch bestimmte spalten haben will. z.b. folgende tabelle:
Datum - Lagernr - FTI1 - OLM1 - OLM2 - OLM3 - XLA1 - XLA2 - ....
das sind die spaltenüberschriften, darunter jeweils viele zahlen etc.
jetzt möchte ich gerne, dass die ersten beiden spalten stehen bleiben (datum und lagernr.) und, dass alle andere spalten gelöscht werden, außer die bei denen OLM in der ersten Zeile steht.
Mein Ansatz:

Private Sub Loeschen()
Dim lnZ As Long
Dim Veranstalter As String
Veranstalter = cboVeranstalterReport.Value
On Error Resume Next
For lnZ = ActiveSheet.UsedRange.Cols.Count To 1 Step -1
If Cells(1, lnZ).Value  Veranstalter Then Cols(lnZ).Delete Shift:=xlToLeft
Next lnZ
On Error GoTo 0
End Sub


aber bei "Cols(lnZ).Delete Shift:=xlToLeft" bringt er mir immer nen fehler (sub oder funktion nicht definiert). wie spricht man denn spalten an, ich dachte mit cols, als gegenstück zu rows. außerdem hab ich keinerlei vorstellung, wie ich die beiden ersten spalten "stehen" lassen kann.
wäre toll, wenn du mir da noch weiterhelfen könntest. meine kenntnisse in vba sind, wie gesagt, eher rudimentär ;)
vielen dank, gruß
christian

Anzeige
AW: monate - formatproblem in vba!?
27.06.2007 13:33:06
Rudi
Hallo,
Spalten heißen Columns()
meinst das so?

Private Sub Loeschen()
Dim lnZ As Long
On Error Resume Next
For lnZ = ActiveSheet.UsedRange.Columns.Count To 3 Step -1
If Not Cells(1, lnZ) Like "OLM*" Then Columns(lnZ).Delete Shift:=xlToLeft
Next lnZ
On Error GoTo 0
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: monate - formatproblem in vba!?
27.06.2007 13:51:00
Wissensdurst
vielen dank - funktioniert, wie gewohnt, perfekt!
ja genauso hab ich das gemeint ;)
irgendwie frustrierend, dass das bei dir immer so leicht und kurz aussieht. ich bräuchte dafür 5 tage und 2000 zeilen code. aber man lernt ja dazu ;)
wenn ich jetzt statt dem "OLM*" eine variable einsetze, dann klappt das bei mir nimmer, wie kann man denn diesen platzhalter (*) in eine variable mit einbauen?
gruß
christian

Anzeige
AW: monate - formatproblem in vba!?
27.06.2007 14:01:00
Rudi
Hallo,
2 von vielen Möglichkeiten:

Private Sub Loeschen()
Dim lnZ As Long, TXT As String
TXT = InputBox("Übrig lassen?")
For lnZ = ActiveSheet.UsedRange.Columns.Count To 3 Step -1
If Not Cells(1, lnZ) Like TXT & "*" Then Columns(lnZ).Delete Shift:=xlToLeft
Next lnZ
On Error GoTo 0
End Sub
Private Sub Loeschen_alternativ()
Dim lnZ As Long, TXT As String
TXT = InputBox("Übrig lassen?")
For lnZ = ActiveSheet.UsedRange.Columns.Count To 3 Step -1
If Not Left(Cells(1, lnZ), Len(TXT)) = TXT Then Columns(lnZ).Delete Shift:=xlToLeft
Next lnZ
On Error GoTo 0
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: monate - formatproblem in vba!?
27.06.2007 14:15:00
Wissensdurst
oh, ich bin aber auch echt doof. das mit dem Variable & "*" habe ich gesucht, hätt ich auch selber draufkommen können...
vielen dank nochmal für alles, jetzt geb ich vorerst mal ruhe ;)
gruß
christian

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige