Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Eingabeprüfung und do until schleife mit datum funktioniert nicht

Frage Entwicklung VB for Applications

Mitglied: Bischoff

Bischoff (Level 1) - Jetzt verbinden

07.04.2009, aktualisiert 10:26 Uhr, 7272 Aufrufe, 5 Kommentare

Hi,

ich bin zwar in einer DV klasse hatte aber schon ca. ein Jahr nichtsmehr mit VBA zu tun und jetzt wo ichs wieder brauche bekomm ich die einfachsten Dinge nichtmehr hin... hab schon nach Beiträgen gesucht aber nichts gefunden hoffe jemand kann mir helfen...

Ich habe in excel eine Tabelle in die mit Hilfe von VBA gefüllt werden soll.
Das funktioniert auch alles soweit bis auf das erste Problem.
Ich habe eine User Form erstellt mit 6 Textfeldern.
Alle Werte werden als integer eingelesen aber wenn eine Spalte leer bleibt also 0 sein soll und diese 0 nicht eingetragen wird
strürtzt das Programm logischerweise ab, da das ja nicht als integer eingelesen werden kann.

So hier habe ich jetzt alle möglichen Eingabeprüfungen versucht
z.B. wenn Das Textfeld leer ist dann Wert = 0 funktioniert aber net...
also
if Txtwert.text = "" Then
Wert = 0
End if

Ich hab echt keine Ahnung mehr wie das geht habs auch schon in verschiedenen foren versucht aber des funktioniert alles net...

Mein nächstes Prob ist, dass in der ersten Tabellenspalte ein Datum steht.
So erst sollte das so sein das die nächste leere Spalte ausgewählt wird und in diese also immer der nächste tag dann die werte übergeben werden sollen.
Das habe ich so gemacht

Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop

Jetz gibt es aber das Problem das z.b. der 10.04.2009 ausgefüllt werden soll und nicht das datum von heute.
Also habe ich in die User form noch ein textfeld gemacht, in das das Datum eigetragen werden soll und die Schleife soweit durchläuft, bis das richtige Datum gefunden ist.


Ich habe dan einfach das Textfeld als date eingelesen.
Dim Datum as Date


und bei der Schleife einfach

Do Until ActiveCell.Value = Datum
ActiveCell.Offset(1, 0).Select
Loop

So da kam dann ne Endlosschleife bei raus :P
Ich habe das Datum dan auch in dem Format eingegeben, in dem es in der Tabelle steht
also 06.04.2009

Jetz weiß ich net ob ich das anderst in das Textfeld eingeben oder die Formatierung in der Tabellen ändern muss.

Hoffe mir kann jemand helfen
Mitglied: SvenGuenter
07.04.2009 um 11:00 Uhr
Ohne getestet zu haben schaue dir mal folgende Funktionen an
01.
if Isempty(Textfeldvonform) then
Datumsprüfung
01.
If isdate(acticecell(reihe,spalte) ) then reihe +1:activecell.(reihe,spalte)
Datumproblem ( Konvertieren)
01.
Cdate(datumsgfeld)

Gruß

Sven
Bitte warten ..
Mitglied: bastla
07.04.2009 um 11:45 Uhr
... und noch als Ergänzung der Hinweis auf die Funktion IsNumeric() ...

Grüße
bastla
Bitte warten ..
Mitglied: Bischoff
08.04.2009 um 11:07 Uhr
Also irgendwie funktioniert des alles nich...ich brauch ja blos die datumsformatierung...

also hab ich einfach gemacht:

dim Datum as Date
Datum = txtDatum.text

und dann in der Schleife

Do Until ActiveCell.Value = Datum (Vorher stand hier "" und das hat funktioniert...)also liegts am datum
ActiveCell.Offset(1, 0).Select
Loop

so das führt zu ner endlosschleife..

des mit der eingabeprüfung funktioniert auch net ..
mal schaun ob einer aus meiner klasse noch so altes zeugs hat^^

aber danke für die Hilfe
Bitte warten ..
Mitglied: bastla
08.04.2009 um 11:34 Uhr
HalloBischoff!

Und warum nicht
01.
If IsDate(txtDatum.text) Then 
02.
    Datum = CDate(txtDatum.text) 
03.
Else 
04.
    Datum = 0 
05.
End If
Abhängig davon, ob die Variable Datum danach einen anderen Wert als 0 hat, kannst Du die weiteren Verarbeitungsschritte durchführen.

Alternativ dazu (je nachdem, was Du noch alles vor hast) könntest Du auch gleich im "Then"-Zweig die restlichen Anweisungen platzieren.
Zusätzlich musst Du auch noch davon ausgehen, dass zwar ein gültiges Datum eingegeben wird, dieses aber nicht in Deiner Tabelle steht - dann wird natürlich ActiveCell.Value nie gleich Datum sein ...

Soferne es keine "Löcher" zwischen den Einträgen gibt, kannst Du das so etwas absichern:
01.
V = ActiveCell.Value 
02.
Do Until V = Datum Or V = "" 
03.
    ActiveCell.Offset(1, 0).Select 
04.
    V = ActiveCell.Value 
05.
Loop 
06.
If V <> "" Then 'Zelle mit dem gesuchten Datum gefunden 
07.
    ...
Grüße
bastla
Bitte warten ..
Mitglied: Bischoff
08.04.2009 um 12:23 Uhr
So funktionierts...
die restlichen eingabeprüfungen hab ich jetz auch hinbekommen läuft akkes problem los


Danke für die Tips

Gruß Bischoff
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Seltsames Verhalten bei Errorlevel abfrage in FOR DO Schleife (1)

Frage von Kalma73 zum Thema Batch & Shell ...

Linux
LTSP: PXE Boot funktioniert nicht (22)

Frage von Fenris14 zum Thema Linux ...

Virtualisierung
Drucker aus einer VM heraus funktioniert nicht (5)

Frage von NCCTech zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...