Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Variable Zelle wählen

Variable Zelle wählen
25.03.2024 20:15:46
wennerfaellt
Hallo,
ich versteh die Logik hinter VBA irgendwie nicht. Ich habe 2 Zellen je eine Variable zugewiesen:

Dim Erste As Long
Dim Letzte As Long
(...)
Erste = ActiveCell.Cells
(...)
Letzte = ActiveCell.Cells

mit

Cells(Erste & ":" & Letzte).Select

kann ich die Zellen von Anfang bis Ende auswählen. Aber warum funktioniert es nicht mit

Cells(Erste).Select

nur die Zelle "Erste" auszuwählen???

27
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Zelle wählen
25.03.2024 21:30:55
Onur
Eine Zelle ist ein BEREICH, das kannst du nicht in eine Long-Variable packen:
Dim Erste As Range, Letzte As Range

SET Erste = ActiveCell
.....
.....
SET Letzte = ActiveCell
Range(Erste, Letzte).Select
AW: Variable Zelle wählen
25.03.2024 21:51:53
wennerfaellt
Danke Onur, das ist die Lösung.
Die Erste Zelle alleine kann ich mit
Range(Erste, Erste).Select
anwählen. Oder geht das auch anders?

Gruß

Wennerfaellt
AW: Variable Zelle wählen
25.03.2024 21:53:46
Onur
Erste.Select 

genügt.
AW: Variable Zelle wählen
25.03.2024 21:45:46
ralf_b
stimmt, du verstehst es nicht aber das wird schon.

Activecell ist bereits eine Zellreferenz also eine Objektvariable. Da muß keine Eingrenzung .cells mehr hinter.
erste und letzte sind Variablen von Typ Long. Da stimmt schon mal was nicht wenn du denen ein Object zuweisen möchtest. In Besten Fall wird ein Zahlenwert aus der Zelle in die long Variable geschrieben.

Cells(Erste & ":" & Letzte).Select wenn die Variablen als long definiert werden erhalten sie den Wert 0. Ändert er sich nicht, dann versuchst du eine Zelle mit der Adresse 0 zu selektieren. Die gibts aber nicht.
Cells(erste).select funktioniert auch nur wenn erste >0 ist, aber nur wenn das Blatt aktiv ist auf dem die Zelle selektiert werden soll.

Anzeige
AW: Variable Zelle wählen
25.03.2024 23:18:47
Oppawinni
Und bitte nicht
Dim Erste as Range...
Man sollte sich von Anfang an an Namenskonventionen gewöhnen. Gut, strikt verwendet das wohl niemand, aber man sollte sich damit zumindest befasst haben:
https://www.herber.de/vbabasics/0001.html#Namenskonventionen
AW: Variable Zelle wählen
26.03.2024 00:02:52
Onur
ICH schreibe für mich selber sogar immer nur
Dim Erste , Zweite

Deine "Namenskonvention", oder die "ungarische Notation" wird von vielen Fachleuten für Blödsinn gehalten, der durch einen Übersetzungsfehler entstand und leider immer noch von manchen Leuten als Pflicht gelehrt wird. Das Einzige, wo das meiner Meinung nach hilfreich wäre, ist bei Userform-Controlnamen. Ausserdem, behindert sie die Lesbarkeit eines Codes, wenn vor jedem Variablennamen so ein "str" oder "lng" o.Ä. steht.
Google doch mal danach (z.B. Wikipedia).
Anzeige
AW: Variable Zelle wählen
26.03.2024 08:27:41
Oppawinni
Ach, ich wusste nicht, dass du Hans Herber für einen Laien hältst.
AW: Variable Zelle wählen
26.03.2024 13:55:57
Onur
Weder habe ich Hans als Laien bezeichnet, noch sieht er es als Pflicht an, er empfiehlt es nur in seinen Tutorials, die wohl zudem offensichtlich für Anfänger gedacht sind.
AW: Variable Zelle wählen
26.03.2024 10:24:37
Oppawinni
Ich habe übrigens mal als Software-Entwickler gearbeitet, es lange her. Damals unter C und die Programme liefen unter Windows 1 :)
Im Team, wir war 8 Leute, wirst du ganz schnell genötigt, dich an gewisse Konventionen zu halten, ob du das gut findest, oder nicht.
Weil ich halt keine IT Ausbildung nachweisen konnte, aber aus privaten Gründen den Job gewechselt habe, bin ich dann wieder im
Maschinenbau gelandet, was halt meinem Studium entspricht. Da durfte ich mich dann wieder mit Fortran IV herum schlagen, mit der Datenbanksprache SAS,
mit Programmierung von Handhabungsgeräten usw. und während des IT-Studiums eines meiner Söhne hab ich mich auch an einen Java-Kurs angehängt.
Wenn du es auch nicht willst, es gibt überall Konventionen.
Aber es ist wie im Straßenverkehr. Viele machen sich heute ihre eigenen Regeln, je nachdem inwieweit sie die Regeln gut finden. Wenn es ihnen einen Vorteil bringt, gilt die Regel, sonst aber nicht.
Vielleicht liegt es daran, dass Quer-Denken modern ist, keine Ahnung.
Dann findest du halt auch Leute, die in modernen Programmiersprachen Codes erzeugen, wo dir vor lauter sprechenden Namen fast das Blech weg fliegt, womöglich dann auch noch mit französischen, schwedischen weiß der Geier an Umlauten, weil natürlich in der Landessprache. Das zu lesen macht dann richtig Spaß weil das Sprechende dir schon gar nichts erzählt aber die Struktur des Codes fast völlig verdeckt wird.
Anzeige
AW: Variable Zelle wählen
26.03.2024 10:37:01
daniel
je nach dem.
man sollte sich schon eine gewisse Systematik überlegen, wie man seine Variablen benennt, wenn man sich in größeren Projekten schnell zurecht finden will.
man sollte hierbei immer berücksichtigen, dass man sich auch mal nach längerer Zeit wieder in den Code einarbeiten muss und u.U. dann auch keine Dokumentation zur Verfügung hat (was bei Hobby- und beruflichen "für den Eigenbedarf"-Programmieren ja öfters mal vorkommt)

wenn ich beispielsweise eine Anwendung mit einer Kundenadressliste habe, die bearbeit werden soll, dann habe ich meistens
- eine Rangevariable, die auf den Zellbereich mit den Kundendaten referenziert
- eine Array-Variable, die die daten für eine schnellere Bearbeitung entält
- einen SchleifenIndex für die Kundendaten
- einen Spaltenindex für die Kundendaten
und das gleiche dann nochmal für die anderen Tabellen
um dann da die übersicht zu bewahren, braucht man schon eine gewisse Systematik, wie man sinnvoll notwendige Informationen in den Variablennamen unterbringt und wenn man mit mehreren zusammenarbeitet, sollte man sich auch darüber einig sein, wie man das macht.
Ob jetzt die ungarische Notation "Pflicht" sein muss, darüber kann man streiten, aber sie ist schon mal ein brauchbarer Einstieg um zu lernen, wie man systematisch nützliche Information in Variablennamen unterbringen kann.

Gruß Daniel
Anzeige
AW: Variable Zelle wählen
26.03.2024 13:46:24
Onur
Die von Charles Simonyi entwickelte "ungarische Konvention" wurde bei Microsoft in der Application Group (Microsoft Office) angewandt und bezog sich auf den "Typ" der Variablen und nicht deren Datentypen. Der Gedanke war, da bin auch ich der Meinung, dass man selbsterklärende Namen benutzt, so dass man schon am Namen erkennt, wozu die Variable dient. Also eigentlich etwas, was jeder Programmierer anwendet. Erst später wurde durch Fehlübersetzung Datentyp daraus.
Auch ich nenne meine Arrays irgendwas mit Arr oder Dictionaries meistens mit dict oder so, aber ich würde mich hüten, es als zwingend notwendig zu erklären.
Selbst Microsoft hat es aufgegeben, dass z.B. Stringvariablen, wie früher üblich bei Basic, ein $-Zeichen am Ende haben müssen.
Anzeige
AW: Variable Zelle wählen
26.03.2024 14:03:35
Oppawinni
Na, ich meine, dass das mit %,$,# usw. in Uralt-Basics Variable quasi implizit deklariert haben.
Eine Variable mit $ am Ende war damit String, ohne irgendwelche zusätzliche Deklarationsanweisung.
Das hat, meine ich, mit Namenskonventionen eher weniger zu tun. Das war ein reines Syntax-Thema.
AW: Variable Zelle wählen
26.03.2024 14:38:07
Oppawinni
Zur Bestätigung dessen, was ich sagte:
(Bitte ohne Option Explicit ausführen)


Sub unit()

Debug.Print "i% " & myVarTypeTxt(i%)
Debug.Print "j$ " & myVarTypeTxt(j$)
Debug.Print "k# " & myVarTypeTxt(k#)

End Sub

Function myVarTypeTxt(vVariable As Variant) As String

Select Case VarType(vVariable)
Case vbEmpty: myVarTypeTxt = "Empty (nicht initialisiert)"
Case vbNull: myVarTypeTxt = "Null (keine gültigen Daten)"
Case vbInteger: myVarTypeTxt = "Integer"
Case vbLong: myVarTypeTxt = "Ganzzahl (Long)"
Case vbSingle: myVarTypeTxt = "Gleitkommazahl mit einfacher Genauigkeit"
Case vbDouble: myVarTypeTxt = "Gleitkommazahl mit doppelter Genauigkeit"
Case vbCurrency: myVarTypeTxt = "Währungswert"
Case vbDate: myVarTypeTxt = "Datumswert"
Case vbString: myVarTypeTxt = "String"
Case vbObject: myVarTypeTxt = "Objekt"
Case vbError: myVarTypeTxt = "Fehlerwert"
Case vbBoolean: myVarTypeTxt = "Boolescher Wert"
Case vbVariant: myVarTypeTxt = "Variant (nur bei Datenfeldern mit Variant-Werten)"
Case vbDataObject: myVarTypeTxt = "Ein Datenzugriffsobjekt"
Case vbDecimal: myVarTypeTxt = "Dezimalwert"
Case vbByte: myVarTypeTxt = "Byte-Wert"
Case vbLongLong: myVarTypeTxt = "LongLong-Ganzzahl (nur auf 64-Bit-Plattformen gültig)"
Case vbUserDefinedType: myVarTypeTxt = "Variant-Werte mit benutzerdefinierten Typen"
Case vbArray: myVarTypeTxt = "Array (wird immer einer anderen Konstante hinzugefügt, wenn sie von dieser Funktion zurückgegeben wird)"
Case Else: myVarTypeTxt = "unbekannt"
End Select

End Function

Anzeige
AW: Variable Zelle wählen
26.03.2024 14:46:25
Onur
Ich weiss ehrlich gesagt nicht, warum du das jetzt gepostet hast und was das bestätigen soll.....
AW: Variable Zelle wählen
26.03.2024 14:51:55
Onur
Ich glaube, ich weiss jetzt, wo das Mißverständnis liegt.
Ich meinte nicht, dass die Suffixe wie "%" oder "$" ABGESCHAFFT wären.
Natürlich gibt es sie noch (alleine schon wg der Abwärtskompatibilität), aber es ist nicht mehr Pflicht, sie zu benutzen, wie es früher war.
AW: Variable Zelle wählen
26.03.2024 14:58:09
Oppawinni
Das war halt in manchen Uralt-Basics NOTWENDIG, weil die Typdeklaration NUR SO ging, war da also ein SYNTAKTISCHE Notwendigkeit.
Das hat insofern NICHTS mit Namenskonventionen zu tun.
AW: Variable Zelle wählen
26.03.2024 15:00:54
Onur
Spielt ja auch keine Rolle, ich fand es nur besser, Strings mit "$" am Ende zu kennzeichnen als mit "str" am Anfang des Namens.
Anzeige
AW: Variable Zelle wählen
26.03.2024 15:07:20
daniel
wobei dann aber keiner mehr weiß, was #, &, oder % am ende bedeuten.
AW: Variable Zelle wählen
26.03.2024 15:08:16
Onur
Wie gesagt, lange her.
AW: Variable Zelle wählen
26.03.2024 15:20:03
Oppawinni
Und wenn du dachtest du könntest in einem Programm A$ und A% verwenden, sind ja zwei verschiedene Namen, dann hattest du dich geirrt. A ist der Variablenname, der Suffix gibt nur den Typ an. Bei der Vielzahl möglicher Datentypen war diese Methode nicht lange haltbar.
AW: Variable Zelle wählen
26.03.2024 16:04:56
Oppawinni
Ich hätte das jetzt auch nicht mehr alles erinnert, aber das dürfte alles gewesen sein:
% Integer
$ String
# Gleitkommazahl mit doppelter Genauigkeit
@ Währungswert (Dezimal)
! Gleitkommazahl mit einfacher Genauigkeit
& Ganzzahl (Long)

Anzeige
AW: Variable Zelle wählen
26.03.2024 16:13:11
Onur
Aus dem Quickbasic 4.5 Handbuch:

A BASIC variable name may contain up to 40 characters. The characters
allowed in a variable name are letters, numbers, the decimal point, and
the type-declaration characters (%, &, !, #, and $).
AW: Variable Zelle wählen
26.03.2024 16:58:04
Oppawinni
Solche alte Schinken zu Programmierung hab ich nicht mehr.
Das älteste was ich in der Richtung noch habe dürfte Borland-Delphi sein.
Brauch ich aber eigentlich auch nicht mehr, höchstens wenn ich mal was beschweren muss :).
AW: Variable Zelle wählen
26.03.2024 16:59:30
Onur
Habe ich im Netz gefunden...
AW: Variable Zelle wählen
26.03.2024 17:10:47
daniel
und heute dürfen die Variablenanmen fast beliebig lang sein.
AW: Variable Zelle wählen
26.03.2024 14:09:13
Onur
Ist doch das Selbe, ob der Datentyp VORNE oder HINTEN steht. Für meinen Geschmack war das mit $ usw besser, weil der Code lesbarer war mit Name$ als mit strName..
Anzeige
AW: Variable Zelle wählen
25.03.2024 21:59:21
GerdL
ActiveCell.Value = 43

Gruß Gerd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige