Registriert seit: 10.04.2014
Version(en): Office 2019
Hallo, wenn die Datumswerte als Datum eingegeben sind, bleibe ich dabei mit bedingter Formarierung alle Datumswerte zu markieren und "betroffene" Spalten zu löschen... ... was je nach Umfang der Datei aber dauern könnte, aber warten wir doch ab, ob und wie sich der TE noch zu diesem Thema äußert...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
also, falls das jetzt jemand erwartet nur zur Information - ich wiederhole meinen Ansatz jetzt nicht nochmal. :05:
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.07.2016
Version(en): Office 2016
Liebes Forum,
erst einmal ein kleines sorry, dass ich erst jetzt wieder antworten kann. OFFTOPIC: Ich hatte Besuch aus Indien und habe als Touristikführer für Deutschland ausgeholfen :)
Im Beispiel sind die Spalten D, F und H jeweils vorausgehende Informationen für die nachfolgende Spalte E, G, usw.
Ich habe circa 250 Spalten (12 Monate x22 Jahre), die ich nicht alle händisch löschen möchte. Ich suche also eine Formel oder ein VBA(ich werde mich aus Zeitgründen leider nicht ausreichend in die Thematik einarbeiten können und mache ungern Dinge von denen ich keine Ahnung habe) welches mir ermöglicht jede Spalte D, F, H,..... zu löschen. Jede Spalte D,F,H,... enthält lückenhafte Datumswerte jedoch mit identischer Formatierung im Zeitraum von Januar 1994 bis Januar 2016.
Ob eine Lösung Ressourcen frisst ist denke ich für mich relativ trivial- ich werde das Tabellenblatt dann einfach in ein neues Tabellenblatt kopieren ( das ist das gleiche wie als Kaffeegourmet InstantKaffe von Ja! zu trinken, ich weiß ;) )
Danke für eure angeregte Diskussion und ab jetzt bin ich für schnelle Antworten und Klärungsbedarf verfügbar!
Felix
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Felix,
mal zur Vergewisserung - Du weißt, dass ab D jede zweite Spalte Daten (Mz von Datum) enthält? Dann brauchen wir doch nichts zu prüfen sondern löschen einfach jede zweite Spalte, oder hab ich da jetzt was falsch verstanden?
Das geht dann übrigens nur mit einem Makro zu automatisieren.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.07.2016
Version(en): Office 2016
(26.07.2016, 20:11)schauan schrieb: Hallo Felix,
mal zur Vergewisserung - Du weißt, dass ab D jede zweite Spalte Daten (Mz von Datum) enthält? Dann brauchen wir doch nichts zu prüfen sondern löschen einfach jede zweite Spalte, oder hab ich da jetzt was falsch verstanden?
Das geht dann übrigens nur mit einem Makro zu automatisieren.
Hallo zurück,
jede zweite Spalte enthält Datumswerte-jedoch nach circa 250 Spalten beginnen dann irgendwann Spalten mit anderen Inhalten.
Die Prüfung könnte man trotzdem umgehen indem ich diese 250 Spalten ( Datum+der dazugehörige Wert zum Datum ) herauskopiere, mit einem Makro (lösche jedes zweite Spalte) bereinige und dann wieder neu reinkopiere. Ansonsten wäre diese Prüfung erforderlich- es sei denn man gibt den Bereich, indem das Makro den VBA -Code anwenden soll, an.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
mit diesem Makro löschst Du jede Spalte, in der ein Datum größer 1900 steht. Du müsstest nur die letzte Spalte anpassen, ich hab da nur 10 drin stehen ...
Code:
Sub Makro1()
'Variablendeklaration
'Integer
Dim iCnt%
'Schleife ueber alle Spalten ab Spalte J = 10 bis Spalte D = 4
For iCnt = 10 To 4 Step -1
'Wenn in der Spalte etwas steht, dann
If WorksheetFunction.CountA(Columns(iCnt)) Then
'Mit der Zelle in Zeile 1
With Cells(1, iCnt)
'Arrayformel zur Ermittlung eines Datums groesser 1900 eintragen
.FormulaArray = "=SUMPRODUCT(IFERROR((YEAR(R6C4:R20C4)>1990),0)*1)"
'Wenn was gefunden, dann
If .Value Then
'Spalte loeschen
Columns(iCnt).Delete
'Wenn nicht, dann
Else
'Formel entfernen
.Value = ""
'Ende Wenn was gefunden, dann
End If
'Ende Mit der Zelle in Zeile 1
End With
'Ende Wenn in der Spalte etwas steht, dann
End If
'Ende Schleife ueber alle Spalten bis Spalte D = 4
Next
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Felixk