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, 7365 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 ..
Ähnliche Inhalte
Windows 10
gelöst Get disk info von WBADMIN funktioniert nicht unter Windows 10 (4)

Frage von RichardK zum Thema Windows 10 ...

Router & Routing
Portforwarding funktioniert teilweise (5)

Frage von mcallister001 zum Thema Router & Routing ...

Netzwerkmanagement
gelöst OpenVPN Verbindung funktioniert. LAN dahinter ist nicht erreichbar (5)

Frage von istike2 zum Thema Netzwerkmanagement ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...