Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
308to312
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
308to312
308to312
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

über VBA: Formel/Text /Zahl in einer Zelle?

über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 11:46:02
Elmar Steigenberger
Hallo!

Ich schreibe gerade ein Makro, das Daten einer alten Excel-Datei in eine neue einpflegt.

Dazu muß ich aber nun wissen, ob die Anwender in die (alte) Datei in Zellen Daten eingegeben haben oder nicht.

Wie kann ich über VBA herausfinden, ob in der Zelle I10:

- eine Formel
- eine Zahl
- ein Text steht?

Die Unterscheidung Zahl zu Text ist nicht ganz so wichtig, aber vielleicht brauche ich die auch noch. Auf alle Fälle brauche ich die Unterscheidung Formel und Eintrag des Benutzers.

Vielen Dank für Eure Antwort!

liebe e-Grüße

Elmar

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: HasFormula / IsNumeric
18.09.2003 12:56:37
ChrisL
Hi Elmar

Range("I10").HasFormula

IsNumeric(Range("I10"))

Jeweils True oder False.

Gruss
Chris
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 12:58:11
Roland Hochhäuser
Hallo Elmar,

hier mal ein Ansatz:


Sub test()
If ActiveCell.HasFormula Then
MsgBox "Hier ist eine Formel!"
Exit Sub
End If
If ActiveCell = "" Then
MsgBox "Hier steht nichts!"
Exit Sub
End If
If IsNumeric(ActiveCell) = True Then
MsgBox "Hier ist eine Zahl!"
Exit Sub
End If
If Not IsNumeric(ActiveCell) = True Then
MsgBox "Hier ist ein Text!"
Exit Sub
End If
End Sub


Gruß
Roland
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 13:53:25
Elmar Steigenberger
Hallo!

Vielen Dank für die wunderbaren Antworten, das war genau das, was ich gebraucht habe.

Ich habe jetzt folgenden Testmakro geschrieben:

=========================


Sub Inhalte()
Dim Ausgabetext(6)
Ausgabetext(1) = "eine Formel"
Ausgabetext(2) = "ein Datum"
Ausgabetext(3) = "nichts"
Ausgabetext(4) = "eine Zahl"
Ausgabetext(5) = "Text"
Ausgabetext(6) = "nicht erkanntes"
For I = 4 To 8
If Range("c" + CStr(I)).HasFormula = True Then
j = 1
MsgBox ("Die Zelle C" + CStr(I) + " enthält " + Ausgabetext(j))
ElseIf IsDate(Range("c" + CStr(I))) = True Then
j = 2
MsgBox ("Die Zelle C" + CStr(I) + " enthält " + Ausgabetext(j))
ElseIf Range("c" + CStr(I)) = "" Then
j = 3
MsgBox ("Die Zelle C" + CStr(I) + " enthält " + Ausgabetext(j))
ElseIf IsNumeric(Range("c" + CStr(I))) = True Then
j = 4
MsgBox ("Die Zelle C" + CStr(I) + " enthält " + Ausgabetext(j))
ElseIf Not IsNumeric(Range("c" + CStr(I))) = True Then
j = 5
MsgBox ("Die Zelle C" + CStr(I) + " enthält " + Ausgabetext(j))
Else: j = 6: MsgBox ("Die Zelle C" + CStr(I) + "enthält ")
End If
Next I
End Sub


=========================

Die Cellen C4:C8 enthalten:

C4: =A1*A2
C5: 100
C6: 18.09.03
C7: xyz
C8: (nichts)

Frage:

Kann ein Benutzer etwas eingegeben haben, das dann nicht den Bedingungen von J=1 bis j=5 entspricht? Kann es jemals dazukommen, dass J=6 wird? Was können irgendwelche Benutzer eingegeben haben, damit J=6 wird?

Vielen Dank fürs Lesen und Antworten!

liebe e-Grüße

Elmar
Anzeige
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 14:40:18
ChrisL
Hi Elmar

Kommt mir eigentlich nichts in den Sinn, was werder Formel, noch Zahl, noch Text, noch gar nichts ist.

Würde Option 6 aber trotzdem belassen, man kann ja nie wissen ;-)

Gruss
Chris
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 14:54:56
Roland Hochhäuser
Nur der Vollständigkeit halber -je nach Prüfzweck-: (Nur) Leerzeichen werden durch dein Makro als Text identifiziert. Ansonsten: siehe Posting von ChrisL

Gruß
Roland
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 15:13:42
Elmar Steigenberger
Ja, das ist auch noch sehr wichtig.

Wenn ein User ein (oder mehrere) NUR Leerzeichen eingegeben hat (und keinen anderen Text) ist es falsch und darf nicht übernommen werden. Ich muß also unterscheiden zwischen Text und (nur) Leerzeichen.

Wie kann ich das in einer Abfrage machen, dass ich rausfinde ob nur Leerzeichen (also auch mehrere) und kein anderer Text) in die Zelle eingegeben worden ist?

Danke fürs Lesen und Antworten!

liebe e-Grüße
Elmar
Anzeige
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 16:13:44
ChrisL
Hi Elmar

So müsste es gehen...


Sub Elmar()
Dim Inhalt As String
If Range("A1") <> "" Then
Inhalt = Range("A1")
Do While Len(Inhalt) > 1
If Left(Inhalt, 1) <> " " Then
MsgBox "Zelle enthält Text"
Exit Sub
Else
Inhalt = Mid(Inhalt, 2, Len(Inhalt) - 1)
End If
Loop
MsgBox "Zelle enthält nur Leerzeichen."
End If
End Sub


Gruss
Chris
AW: über VBA: Formel/Text /Zahl in einer Zelle?
18.09.2003 16:41:07
Roland Hochhäuser
Hallo Elmar,

das #NV-Problem (Danke an PanicMan) kannst du abfangen, indem du vor der Textabfrage folgendes prüfst:

If ActiveCell.Text = "#NV" Then
MsgBox "Hier steht eine Fehlermeldung!"
Exit Sub
End If
Anzeige
gebt mal #NV in eine Zelle !!! o.T.
18.09.2003 15:16:54
Panicman

357 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige