Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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
Inhaltsverzeichnis

Schreibeweise eines Godes

Schreibeweise eines Godes
31.07.2021 12:17:34
Thomas
Guten Tag VBA Gemeinschaft.
Ich habe eine Frage zu einer Schreibweise im Gode:
Worin liegt der Unterschied zwischen dieser Gode Zeile
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Und dieser Gode Zeile
Private Sub Worksheet_Change(ByVal Target As Range)
Ich frage dieses weil beim testen was passiert wenn man es "Excel.Range" benennt oder nur "Range" passiert bei mir Garnichts. Es läuft alles genau gleich ob mit Excel oder ohne Excel Deklaration.
Besten dank an die, die mir das erklären können weshalb es hierbei Unterschiede in der Schreibweise gibt.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibeweise eines Godes
31.07.2021 14:09:06
Hajo_Zi
ich würde das benutzen was Excel vorschlägt als das zweite.
Excel. ist nicht notwendig da der Code in Excel ist.
GrußformelHomepage
AW: Schreibeweise eines Godes
31.07.2021 14:11:21
onur
1) Es heisst CODE und nicht Gode.
2) An Excel-internen Subs (wie alle Ereignis-Codes) kannst und DARFST du NIX ändern, du darfst sie nur benutzen.
Es wird vom System so angeboten:
Private Sub Worksheet_Change(ByVal Target As Range)
und daran darf rein gar nix verändert werden (aber nur, wenn du willst, dass sie auch funktionieren).
Anzeige
AW: Schreibeweise eines Godes
31.07.2021 14:37:49
Daniel
Naja, stimmt so nicht ganz.
Wenn das Makro funktionsfähig bleiben soll, dann
gibt es Dinge, die man ändern kann und welche, die man nicht ändern darf.
Nicht geändert werden darf bspw der Makroname.
Das "Private" hingegen kann in "Public" geändert werden.
Ebenso dürfen die Variablennamen angepasst werden, wenn man das will.
Es muss nur gewährleistet sein, dass das Makro die Werte übernehmen kann, die das Event übergenen will.
Natürlich ist es in der Regel nicht sinnvoll, an der automatisch erzeugten Zeile was zu ändern, aber möglich ist es.
Gruß Daniel
AW: Schreibeweise eines Godes
31.07.2021 18:29:45
Thomas
Hallo onur, entschuldige diesen Formfehler Gode....
Also das man an solchen Codes nicht ändern soll mag ja plausibel sein. Hätte ich über dieses Thema nicht gegoogelt so wäre hier wohl nie eine Frage danach erschienen.
Wenn ich in Google das hier eingebe: "Excel VBA

Private Sub Worksheet_Change(ByVal Target As Excel.Range)"
Dann kommt folgendes Thema dazu, ich versuche diese Passage hier mal reinkopieren:
Beispiel
Im folgenden Codebeispiel wird die Farbe der geänderten Zellen in Blau geändert.
vb
kopieren

Private Sub Worksheet_Change(ByVal Target as Range)
Target.Font.ColorIndex = 5
End Sub
Im folgenden Codebeispiel wird überprüft, ob sich die geänderte Zelle in Spalte A befindet und ob der geänderte Wert der Zelle größer als 100 ist, wenn sich ein Zellwert ändert. Wenn der Wert größer als 100 ist, wird die benachbarte Zelle in Spalte B in die Farbe Rot geändert.
vb
kopieren

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
ThisRow = Target.Row
If Target.Value > 100 Then
Range("B" & ThisRow).Interior.ColorIndex = 3
Else
Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone
End If
End If
End Sub
Im folgenden Codebeispiel werden die Werte im Bereich A1:A10 in Großbuchstaben festgelegt, wenn die Daten in die Zelle eingegeben werden.
vb
kopieren

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A10")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
'Set the values to be uppercase
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End Sub
Nun du siehst hier jetzt, das es Beispiele gibt wo steht Excel.Range und solche wo nur Range geschrieben wird.
Wie erklärst du dir das denn jetzt?
Denn das war meine Frage wieso man das so macht.
Ich gehe aber mal davon aus das die Antworten von Hajo und Daniel plausibel sind oder?
Anzeige
AW: Schreibeweise eines Godes
31.07.2021 18:49:17
GerdL
Moin,
ab irgendeiner Version hat Microsoft das "Excel." bei diesen Ereignisprozeduren weggelassen.
Deshalb findest du Beispiele mit und ohne im Netz.
Gruß Gerd
AW: Schreibeweise eines Godes
31.07.2021 19:03:18
onur
Du musst nicht glauben, dass die Beispiele, die du ergoogelt hast, alle von "Profis" stammen, 100% richtig laufen oder der Weisheit letzter Schluss sind. Bloß weil es im Internet Jemand so gemacht hat, muss man das nicht nachmachen. Wieso die das so gemacht haben? Das musst du die Leute selbst fragen. Vielleicht wollten sie die automatisch mitgelieferten Subroutinen verändern und ihnen eine perönliche Note geben ?
Wenn ich die Sub brauche, gehe ich zum Code-Modul des Blattes und wähle ihn aus dem Menü aus und brauche Anfang und Ende nicht selber zu tippen
Anzeige
AW: Schreibeweise eines Godes
31.07.2021 23:50:08
onur
Ich habe nie gesagt, es wäre Schwachsinn, nur völlig überflüssig (jedenfalls heutzutage).
Wenn du mal öfters die Microsoft-Seiten besuchst, wirst du da tatsächlich noch oft richtigen Schwachsinn entdecken, wovon die harmloseren nur grobe Übersetzungsfehler sind.
Anzeige
Genau das ist auch richtig! owT
01.08.2021 13:29:09
Luc:-?
:-?
AW: Schreibeweise eines Godes
31.07.2021 14:27:51
Daniel
Hi
Das ist im Prinzip wie bei einer Adresse.
Vollständig wäre:
Land - Stadt - Straße - Hausnummer
Wenn man was innerhalb eines Landes verschicken will, braucht man das Land nicht angeben.
Oder etwas praxisnäher:
Alle VBA-Begriffe ("Range") sind in Listen ("Excel") hinterlegt, dort stehen dann die Anweisungen, was bei diesem Begriff zu tun ist.
Die Liste, in welcher dieser Begriff zu suchen ist, kann man explizit angeben, muss aber nicht unbedingt.
Wenn die Liste ("Excel") nicht angegeben ist, dann sucht der Interpreter/Compiler in bestimmten vorgegebenen Listen. Ist dann der Begriff dann in einer dieser Listen drin, funktioniert es ohne die Angabe der Liste, falls nicht, muss man die Liste angeben.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige