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

VBA - Programmabsturz nach CASE Abfrage

Frage Microsoft Microsoft Office

Mitglied: xaumichi

xaumichi (Level 1) - Jetzt verbinden

21.07.2010 um 18:19 Uhr, 4384 Aufrufe, 12 Kommentare

Hallo!

Hab in einem Programm nach ein paar anderen Zeilen folgenden Code:

Select Case Range("C5")
Case Is = "JÄNNER"
Range("D7").Value = "Überstd. Dez."
Case Is = "FEBRUAR"
Range("D7").Value = "Überstd. Jän."
End Select


Hintergrund:
In einer Rolldown-Menü kann man die Monate auswählen (JÄNNER, FEBRUAR,....) geht in der Zelle C5.
Nun wollte ich in der Zelle D7 folgenden Text stehen haben:

"Überstd. *MONAT*" , wobei *MONAT* immer das ausgewählte Monat aus dem Rolldownmenü sein soll, nur in einer gekürzten Form (Jän., Feb.,....)

Problem:

Irgendwie stürzt jedoch mein Programm immer ab, sobald ich den oben genannten Code anwende.

Woran könnte das liegen??

LG Mike
Mitglied: Bolle97
22.07.2010 um 10:12 Uhr
Hallo,

statt
01.
Case Is = "JÄNNER" 
02.
einfach 
03.
Case "JÄNNER"
Gruß René
Bitte warten ..
Mitglied: xaumichi
22.07.2010 um 15:31 Uhr
Hm...danke für den Versuch!

Aber jetzt kommt eine Fehlermeldung:
"Die Methode 'Value' für das Objekt 'Range' ist fehlgeschlagen."

Habe das ".Value" auch schon auf ".text" umgeschrieben. Dann stürzt jedoch das programm wieder ab!

Hättest du noch eine andere idee?
Bitte warten ..
Mitglied: Biber
22.07.2010 um 15:43 Uhr
Moin xaumichi,

ich war gestern auch erst auf der Fährte, dass es an deiner etwas ungewöhnlichen "CASE Is = "- Syntax liegen könnte.

Aber die sieht zwar krank aus, ist nichtsdestotrotz sogar in der VBA-Hilfe angegeben und tut, was sie soll.

Hat denn das Zielfeld "D7" irgendwelche erwähnenswerten Eigenschaften?
  • Ist es mit einem/mehreren Feldern "verbunden" zu einem großen Feld
  • ist es geschützt/gesperrt?
  • kannst du in Excel direkt dort "Test" oder "Hallo" oder "JÄNNER" reintippseln?

Grüße
Biber
Bitte warten ..
Mitglied: TsukiSan
22.07.2010 um 15:47 Uhr
Kann es sein, dass unter OPTIONEN--->ALLGEMEIN die "Bezugsart" auf "Z1S1" eingestellt ist?

Gruss
Tsuki
Bitte warten ..
Mitglied: xaumichi
22.07.2010 um 15:54 Uhr
Zuerst war sie verbunden mit 2 weitern Zellen.
Da ich jedoch zu keinem Ergebnis gekommen bin, habe ich die Verbindung gelöscht. Allerdings hat dies nichts bewirkt!

Ja, die Zelle ist gesperrt. Hätte ich erwähnen sollen. Sry.

LG Mike
Bitte warten ..
Mitglied: xaumichi
22.07.2010 um 15:55 Uhr
Ja, es war einmal "Z1S1" eingestellt. habe es aber auch schon wieder zurückgestellt. hat jedoch ebenfall keine Änderung hervorgerufen!

LG Mike
Bitte warten ..
Mitglied: TsukiSan
22.07.2010 um 16:13 Uhr
Mh,

versuch doch trotzdem mal (testenshalber)
die "RANGE" in "CELLS" zu ändern.
Also:
Range("D7").Value entspräche dann Cells(7,4).Value (oder so ähnlich!)

Gruss
Tsuki
Bitte warten ..
Mitglied: Biber
22.07.2010 um 16:15 Uhr
Moin xaumichi,
Zitat von xaumichi:
Ja, die Zelle ist gesperrt. Hätte ich erwähnen sollen. Sry.
Melde mich nachher nochmal.
Muss erstmal ganz kurz in dem Keller ....
da muss noch irgendwo ein Rest von diesem selbstgebrannten Lakritzschnaps liegen.
Den brauch ich jetzt...


Grüße
Biber
Bitte warten ..
Mitglied: TsukiSan
22.07.2010 um 16:17 Uhr
@Biber

Muss erstmal ganz kurz in dem Keller ....
da muss noch irgendwo ein Rest von diesem selbstgebrannten Lakritzschnaps liegen.
Den brauch ich jetzt...
bringst du mir 'nen Bier auf'm Rückweg mit?

Danke und Prost
Tsuki
Bitte warten ..
Mitglied: xaumichi
23.07.2010 um 11:04 Uhr
Hallo!

Hab das mit "Cells(....)" probiert. Leider hat es auch nichts gebracht.

Da ich leider doch noch ein ziemlicher Neuling mit VBA bin habe ich nicht gleich daran gedacht:

Ich habe zu beginn eine Code-Passage:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 then Exit sub
If Intersect (Target, Range ("A1", "N50")) Is Nothing Then Exit Sub

...damit eben die Formatierungen sofort übernommen werden, wenn sich in Zellen etwas ändert.

Ich habe jetzt den starken verdacht, dass es daran liegt, dass mein Excel dann immer abstürzt. Oder??
Wenn ja, was könnte ich ändern? Würde sich was ändern, wenn die Zellen, die die den Text erhalten sollen nicht in dem Range("A1", "N50") stehen würden?

Lg Mike
Bitte warten ..
Mitglied: xaumichi
26.07.2010 um 13:34 Uhr
So, jetzt hab ich noch eine Sache!
Ich hoffe, dass mir hierbei wer helfen kann!

Also, wie zuvor beschrieben, habe ich ja eine "Änderungsprüfung" (sub worksheet_change()).
Ich habe nun versucht, dass ich diese Textänderung mit den Monaten alleine in dieser Änderungsprüfung stehen habe und siehe da, es funktioniert.
Wenn ich jedoch wieder den anderen Code (mit den Formtierungen) hinzu füge, stürzt die Datei wieder ab.

Gibt es eine Möglichkeit ZWEI Sub Worksheet_Change() zu machen? (laut anderen Foren, geht es ja nicht, aber es soll möglichkeiten geben, 2 oder mehrere zu verknüpfen)
ABER wie könnte ich die beiden verknüpfen?

LG Mike
Bitte warten ..
Mitglied: xaumichi
05.08.2010 um 22:46 Uhr
Ursache:
Das Change()-Ereignis kommt in eine Unendlichschleife --> irgendwann ist es zu viel und schmiert ab!
Lösung: Zähler einbauen!

LG
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Excel Recordset - Abfrage auf SQL-Server (4)

Frage von Aximand zum Thema VB for Applications ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...