Supportnet / Forum / Tabellenkalkulation
Suchfunktion in Excel
Frage
Hallo Leute,
Folgendes Beispiel eines Datums
'13.03.1999
Wenn ich jetzt mit der Funktion "Links" rangehen und mir das erste Zeichen auslesen lasse wirft mir Excel die 1 aus.
Meine Frage wieso?
Und gibt es eine Möglichkeit, das ' - Zeichen zu ermitteln bzw. zu ermitteln ob ein ' in meiner Zelle vorhanden ist?
Würde nämlich gerne erst Prüfen lassen ob ein ' in meiner Zelle vorhanden ist und wenn ja dieses dann löschen lassen. Nur wenn ich es nicht mal ermitteln kann, kann ich es auch nicht löschen lassen.
gruß
morpheus
Antwort 1 von lleopard
hi morpheus,
wo de recht hast, haste recht. Kann man in excel nicht auslesen.
du kannst nur ggf. überprüfen ob in dem Feld ein Datum oder ein Text eingetragen ist. wenn text, soll aber datum sein, formatierst du den inhalt einfach um.
gruß leo
wo de recht hast, haste recht. Kann man in excel nicht auslesen.
du kannst nur ggf. überprüfen ob in dem Feld ein Datum oder ein Text eingetragen ist. wenn text, soll aber datum sein, formatierst du den inhalt einfach um.
gruß leo
Antwort 2 von nighty
hi all :-)
beim programmieren ist das wort geht nicht ein fremdwort,eher die begrenzung der fantasie oder die begrenzung des wissens
gruss nighty
suche ="~`"
beim programmieren ist das wort geht nicht ein fremdwort,eher die begrenzung der fantasie oder die begrenzung des wissens
gruss nighty
suche ="~`"
Antwort 3 von lleopard
hi nighty,
würde mich etwas detaillierter interessieren...
meinst über Strg + F => ~' eingeben?
Ich denke morpheus sucht nach einer automatisierten Lösung per Makro, bzw VBA.
Haste da was vorrätig?
Gruß Leo
würde mich etwas detaillierter interessieren...
Zitat:
suche ="~`"
suche ="~`"
meinst über Strg + F => ~' eingeben?
Ich denke morpheus sucht nach einer automatisierten Lösung per Makro, bzw VBA.
Haste da was vorrätig?
Gruß Leo
Antwort 4 von morpheus__85
Hallo Leute,
erstmal vielen Danke für eure Hilfe.
Hab das ganze mal folgendermaßen probiert.
MsgBox InStr(Cells(1,3).value, "~' ")
testweise hab ich es mal nur an einer einzigen Zelle ausprobiert.
Ergebnis der MsgBox = 0
Also kein ' drin enthalten....
hab ich was falsch gemacht oder ist es berechtigt, dass ich das jetzt nicht versteh?
gruß
morpheus
erstmal vielen Danke für eure Hilfe.
Hab das ganze mal folgendermaßen probiert.
MsgBox InStr(Cells(1,3).value, "~' ")
testweise hab ich es mal nur an einer einzigen Zelle ausprobiert.
Ergebnis der MsgBox = 0
Also kein ' drin enthalten....
hab ich was falsch gemacht oder ist es berechtigt, dass ich das jetzt nicht versteh?
gruß
morpheus
Antwort 5 von nighty
hi leo :-)
ein kleines beispiel :-))
gruss nighty
ein kleines beispiel :-))
gruss nighty
Sub suchen_und_Ersetzen()
Workbooks(1).Worksheets(1).Columns("A:C").Replace what:="~'", replacement:="", searchorder:=xlByColumns, MatchCase:=True
End SubAntwort 6 von morpheus__85
Hallo Leute,
vielen danke hat mir sehr geholfen eure Lösungen.
Hätte da noch eine Frage.
Da ich jetzt das Zeichen aus dem Datum raus habe, würde ich gerne nach Datum sortieren.
Wenn ich das ganze per Hand machen
also
Daten -> Sortieren -> Spalte auswählen kommt die Sortierwarnung ....
Da klicke ich dann Alles was wie eine Zahl aussieht, als Zahl sortieren.
Dann sortiert er mir das ganze richtig.
Wenn ich diese Schritte allerdings per Makro aufzeichne und dann das Makro ausführe, sortiert er mir meine Tabellenblatt nicht.
Kann es sein, dass beim Makro dieser Schritt mit der Sortierwarnung ausgelassen wird und deshalb nicht richtig sortiert wird?
Die Datumsspalte per VB als Datumsfelder zu formatieren bringt leider nicht.
Kann man diese Fehlermeldung im VB Code auch miteinbringen und dann so beantworten das es richtig sortiert wird?
gruß
morpheus
vielen danke hat mir sehr geholfen eure Lösungen.
Hätte da noch eine Frage.
Da ich jetzt das Zeichen aus dem Datum raus habe, würde ich gerne nach Datum sortieren.
Wenn ich das ganze per Hand machen
also
Daten -> Sortieren -> Spalte auswählen kommt die Sortierwarnung ....
Da klicke ich dann Alles was wie eine Zahl aussieht, als Zahl sortieren.
Dann sortiert er mir das ganze richtig.
Wenn ich diese Schritte allerdings per Makro aufzeichne und dann das Makro ausführe, sortiert er mir meine Tabellenblatt nicht.
Kann es sein, dass beim Makro dieser Schritt mit der Sortierwarnung ausgelassen wird und deshalb nicht richtig sortiert wird?
Die Datumsspalte per VB als Datumsfelder zu formatieren bringt leider nicht.
Kann man diese Fehlermeldung im VB Code auch miteinbringen und dann so beantworten das es richtig sortiert wird?
gruß
morpheus
Antwort 7 von morpheus__85
Hallo
hätte noch eine kleine Frage zum abschluss.
Ich habe das ganze jetzt soweit, das das Datum alleine in der Zelle steht z.B. 13.03.2000 ohne ein ' oder ähnliches.
Mein Problem ist allerdings warum auch immer, dass auch wenn ich die Datumsspalte per VB als "Datum" formatiere, das Datum links in der Zelle stehen bleibt und sich nicht sortieren lässt.
Sobald ich mit dem Cursor in eine Zelle gehe und dann Return drücke, rutscht das Datum nach rechts und lässt sich sortieren.
Gibt es in Excel ein "SetFocus" oder ähnliches wie in VB das man zuerst eine Zelle aktiviert, dann der Cursor in die Zellle reingeht und dann schließlich mit Return wieder raus?
Die Zelle aktivieren würde ich mit
Range("C1").Select machen, fals man nur 1 Zelle möchte,
dann bräuchte ich eben einen Befehl der den Cursor in die Zelle setzt
und schließlich verlasse ich die Zelle in Richtung nächste Zelle mit
Range("C2").Select.
Kann mir da jemand weiterhelfen?
gruß
moprheus
hätte noch eine kleine Frage zum abschluss.
Ich habe das ganze jetzt soweit, das das Datum alleine in der Zelle steht z.B. 13.03.2000 ohne ein ' oder ähnliches.
Mein Problem ist allerdings warum auch immer, dass auch wenn ich die Datumsspalte per VB als "Datum" formatiere, das Datum links in der Zelle stehen bleibt und sich nicht sortieren lässt.
Sobald ich mit dem Cursor in eine Zelle gehe und dann Return drücke, rutscht das Datum nach rechts und lässt sich sortieren.
Gibt es in Excel ein "SetFocus" oder ähnliches wie in VB das man zuerst eine Zelle aktiviert, dann der Cursor in die Zellle reingeht und dann schließlich mit Return wieder raus?
Die Zelle aktivieren würde ich mit
Range("C1").Select machen, fals man nur 1 Zelle möchte,
dann bräuchte ich eben einen Befehl der den Cursor in die Zelle setzt
und schließlich verlasse ich die Zelle in Richtung nächste Zelle mit
Range("C2").Select.
Kann mir da jemand weiterhelfen?
gruß
moprheus
Antwort 8 von woher
Hallo,
probier mal folgendes:
gib in eine freie Zelle eine 1 ein, Kopiere, Markiere die Zellen mit den Datums Angaben, Rechts-Klick, Inhalte einfügen, Option Werte auswählen, Option multiplizieren auswählen, O.K., nochmal Rechts-Klick, Zellen formatieren, Datum, O.K.
mfg
Wolfgang
Ich vermute, deine Daten sind ein Export aus einer anderen Anwendung .
probier mal folgendes:
gib in eine freie Zelle eine 1 ein, Kopiere, Markiere die Zellen mit den Datums Angaben, Rechts-Klick, Inhalte einfügen, Option Werte auswählen, Option multiplizieren auswählen, O.K., nochmal Rechts-Klick, Zellen formatieren, Datum, O.K.
mfg
Wolfgang
Ich vermute, deine Daten sind ein Export aus einer anderen Anwendung .
Antwort 9 von morpheus__85
Hallo woher,
vielen Danke für deinen Tip,
hat prima funktioniert.
Habe gestern abend aber noch eine Lösung per Makro gefunden die funktioniert.
Ich poste sie einfach mal fals mal jemand das selbe Problem hat und so ein Makro gebrauchen kann.
vielen Danke für deinen Tip,
hat prima funktioniert.
Habe gestern abend aber noch eine Lösung per Makro gefunden die funktioniert.
Ich poste sie einfach mal fals mal jemand das selbe Problem hat und so ein Makro gebrauchen kann.
Zitat:
Public Sub MySort()
Dim i As Integer
Dim Umwandlung As Date
For i = 1 To 3
Umwandlung = CDate(Cells(i, 3).Value)
Cells(i, 3).NumberFormat = "dd/mm/yyyy;@"
Cells(i, 3).Value = Umwandlung
Next i
Range("C1:C3").Select
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending
End Sub[/quote
Das ganze ist jetzt für meine Datumsspalte C ausgelegt und auch testweise nur für die ersten 3 Zeilen.
Du hast recht woher. Die Daten bekomme ich von einer externen Datenquelle als Download in Excel bereit gestellt. Da ich die Daten dann in Acceess einspielen möchte muss ich vorher nach dem Datum sortieren, da ich sonst betimmte Berechnungen nicht durchführen kann, wenn die Daten durcheinander gewürfelt sind.
Vielen Dank für eure Hilfe
Gruß
Morpheus
Public Sub MySort()
Dim i As Integer
Dim Umwandlung As Date
For i = 1 To 3
Umwandlung = CDate(Cells(i, 3).Value)
Cells(i, 3).NumberFormat = "dd/mm/yyyy;@"
Cells(i, 3).Value = Umwandlung
Next i
Range("C1:C3").Select
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending
End Sub[/quote
Das ganze ist jetzt für meine Datumsspalte C ausgelegt und auch testweise nur für die ersten 3 Zeilen.
Du hast recht woher. Die Daten bekomme ich von einer externen Datenquelle als Download in Excel bereit gestellt. Da ich die Daten dann in Acceess einspielen möchte muss ich vorher nach dem Datum sortieren, da ich sonst betimmte Berechnungen nicht durchführen kann, wenn die Daten durcheinander gewürfelt sind.
Vielen Dank für eure Hilfe
Gruß
Morpheus

