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

Erster Buchstabe VBA-Befehl nicht groß

Erster Buchstabe VBA-Befehl nicht groß
14.08.2005 21:07:50
Reinhard
Hallo Wissende,
habe gerade nachfolgenden Code gebastelt.
Worksheets(n).name wird nicht in
Worksheets(n).Name umgewandelt!?
Gruß
Reinhard
Option Explicit
Sub Löschen()
Dim strAntwort As String, n As Byte
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False 'Ereignissprozeduren deaktivieren.
strAntwort = MsgBox("Achtung: Das gesamte Tabellenblatt wird zurückgesetzt!", _
vbExclamation + vbOKCancel, "Hinweis")
If strAntwort = vbCancel Then Exit Sub 'Bei "Abbrechen" abbrechen.
Call Lösch(ActiveSheet.name)
strAntwort = MsgBox("Die anderen Tabellenblätter ebenfalls zurücksetzen?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Frage")
If strAntwort = vbYes Then
For n = 1 To Worksheets.Count
If Worksheets(n).name <> "Zusammenstellung" Then Call Lösch(Worksheets(n).name)
Next n
MsgBox "Alle Monate auf Null gesetzt.", vbInformation, "Information"
End If
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True 'Ereignissprozeduren aktivieren.
Application.ScreenUpdating = True      'Bildschirmaktualisierung einschalten.
End Sub
Sub Lösch(name As String)
Dim n As Byte
With Worksheets(name)
.Unprotect
.Range("H8:H38").ClearContents
For n = 8 To 38
.Cells(n, 7).FormulaLocal = "=Wenn(F" & n & ">0;""0:00"";"""")"
Next n
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erster Buchstabe VBA-Befehl nicht groß
14.08.2005 21:32:10
PeterW
Hallo Reinhard,
wenn du in der Sub Lösch name as String übergibst musst du dich nicht wundern. ;-)
Gruß
Peter
AW: Erster Buchstabe VBA-Befehl nicht groß
14.08.2005 22:47:22
Reinhard
Hallo Peter,
danke, aber leider keine Äbderung durch
Sub Lösch(aaa As String)
....
Gruß
Reinhard
AW: Erster Buchstabe VBA-Befehl nicht groß
14.08.2005 22:58:37
PeterW
Hallo Reinhard,
dann kopier den Code mal in ein leeres Modul einer neuen Mappe.
Gruß
Peter
AW: Erster Buchstabe VBA-Befehl nicht groß
15.08.2005 02:25:28
PeterW
Hallo Reinhard,
danke für die Rückmeldung.
Gruß
Peter
noch offen o.w.T.
15.08.2005 14:51:54
Reinhard
Gruß
Reinhard
AW: noch offen o.w.T.
15.08.2005 15:49:23
Klaus
Hallo Reinhard,
normalerweise kannst du einen Eigenschaftsnamen (in diesem Falle .Name) auch als Variable benutzen, da VBA aus dem Zusammenhang erkennt, ob es eine Eigenschaft oder eine Variable sein soll (im Gegensatz zu den vordefinierten Schlüsselwörtern wie z.B. Sub, Function, For usw., die nicht benutzt werden dürfen).
Allerdings scheint VBA ein Problem damit zu haben, dass du die Eigenschaft .name als kleingeschriebene Variable deklariert hast und wandelt deshalb den Eigenschaftsnamen auch in Kleinschreibung um.
Hier nun die Lösung:
Schritt Nr.1:
Du kannst jetzt Sub Lösch(name As String) in Sub Lösch(Name As String) umbenennen, die Eigenschaft .Name wird nun auch wieder als Großbuchstabe dargestellt.
Schritt Nr.2:
Um weitere Probleme zu vermeiden, änderst du nun den Variablennamen Name in einen ungefährlichen Namen um (Wichtig: Schritt 1 musst du zuvor ausgeführt haben !)
Sollte diese Lösung zu Problemen führen, kannst du den Code wie von PeterW beschrieben in ein neues Modul in einer neuen Arbeitsmappe reinkopieren, zuvor musst du aber den Variablennamen name umgeändert haben !!!
Gruß Klaus
Anzeige
Klaus hat es gelöst
15.08.2005 20:54:59
Reinhard
Hallo Klaus,
danke für Information und Lösung.
Gruß
Reinhard
AW: Klaus hat es gelöst
16.08.2005 00:26:44
PeterW
Hallo Reinhard,
wenn du dir angewöhnst, in Variablennamen deren Typ mit aufzunehmen und sprechende Variablennamen zu benutzen kannst du dir solche Probleme ersparen - und längerer Code wird leichter zu lesen. Mit strName wärst du nicht in diese VBA-Falle getappt. Wenn du magst schau mal hier: https://www.herber.de/xlfaq/xlbasics/main_con.htm
Gruß
Peter
AW: Klaus hat es gelöst
16.08.2005 01:05:43
Reinhard
Hallo Peter,
ich bin ja durch Druck von K.Rola & Boris schon auf dem ege der Läuterung und benutze
Option Explicit*g
Ich muss mir endlich mal eine xla basteln, wo schon ein Modul eigefügt ist und eine Sub
in der Schon Dim intSpalte as integer, Dim lngZeile as long, dim n as long (n werde ich nie intn nennen *g)
lngZeile=Range("a65536).end(xlup).row
und eine Schleife For n= 1 to lngZeile usw steht, evtl mehrere Xlas
Einfach um Zeit einzusparen, siehe meiner Anfrage wegen dem Javateil in Offtopic.
Gruß
Reinhard

Anzeige
AW: Klaus hat es gelöst
16.08.2005 01:23:50
PeterW
Hallo Reinhard,
falls geschehen: ich wollte dir nicht auf den Schlips treten, das war als gut gemeinter Tipp gedacht. Was nutzt Option Explicit, wenn du du es in gepostetem Code zwar stehen hast aber trotzdem die Variablen nicht deklarierst? Schreib dir viele XLA's, wenn du die Zeit dazu hast. ;-) Darf ich noch einen Hinweis geben? Wer weiß, ob MS nicht mal mehr als 65536 Zeilen in Excel ermöglicht? lngZeile = Cells(Rows.Count, 1).End(xlUp).Row wird dann immer noch zuverlässig funktionieren.
Gruß
Peter
Danke für den Tipp mit Rows.count m.T.
16.08.2005 16:02:33
Reinhard
Hallo Peter,
bei java sehe ich das wie du, aber die Benutzung dieses Javascripts in seiner Urform erleichtert den Antwortern hier das Antworten enorm.
Ich werde gleich mal prüfen wie Rows.count auf Wert in a65536 odser leere Spalte reagiert.
Gruß
Reinhard
Anzeige
AW: Danke für den Tipp mit Rows.count m.T.
17.08.2005 00:24:22
PeterW
Hallo Reinhard,
wenn ich das Script richtig deute (wie geschrieben, hab keine Ahnung von JAVA) geht es darum einem User mit 0-VBA Kenntnis zu erklären, wie man einen geposteten Code im VBA-Editor einfügt und in Excel ausführen kann. Eine Anleitung lässt sich unter Services finden: https://www.herber.de/xlfaq/ws_themen/programming.html und muss nicht jeweils neu eingefügt werden.
Gruß
Peter
PS: Range("A65536")=Cells(Rows.Count, 1)
PSS: kann hier mit IE6.0 ohne Probleme antworten und muss das leere Feld XL-Version nicht ausfüllen
Anzeige
@Peter, schau mal bitte ins Brett Off-Topic o.w.T
16.08.2005 16:18:39
Reinhard
Gruß
Reinhard
PS: JAVA
16.08.2005 01:26:25
PeterW
von JavaScript hab ich keine Ahnung, da halte ich mich diskret zurück. :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige