Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ActiveCell.Row Werte nach und nach per CommandButton in ein Feld eintragen
#1
Hallo liebe Gemeinde,

ich möchte in einem mit ReDim Vfeld(1 to 50) initialisierten Feld jeweils nacheinander die aktuelle/ aktivierte Zeilennummer per CommandButton eintragen.
Die einzelnen Zellen werden dabei also über ein Formularelement mit anderen CommandButtons angesteuert und aktiviert. Mein Problem ist nun, wenn ich die einzelnen Zellen nach und nach
abfahre und aktiviere, wie ist es  dann am besten  möglich  die jeweiligen Zeilennummern (ActiveCell.Row) als Werte in Vfeld einzutragen. Bei jedem Aufruf meines CommandButtons verliert die 
vfeld beinhaltende Prozedur jaschließlich ihr Gedächtnis, vfeld muss also jedesmal wieder neu deklariert und der entsprechende Wert dafür eingetragen werden.

Danke schon mal für eure Hilfe.
Antworten Top
#2
Hi!
Bevor ich mir Gedanken mache:
Feedback zu http://www.clever-excel-forum.de/Thread-...en-Zeichen ??

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hallo Nora,
ohne Dein Makro zu kennen: Wenn Du Vfeld als Static-Variable erklärst, sollte es erhalten bleiben.
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#4
(14.01.2016, 18:32)RPP63 schrieb: Hi!
Bevor ich mir Gedanken mache:
Feedback zu http://www.clever-excel-forum.de/Thread-...en-Zeichen ??

Gruß Ralf

Hallo Ralf,

bezüglich der hochgestellten bzw. tiefgestellten Zeichen mußte ich nach Internetrecherche feststellten, dass die
Textbox hier wohl keine Möglichkeiten bietet so etwas darzustellen. Du kannst aus der Zwischenablagen die
Zeichen hineinkopieren, die Weiterverarbeitung bzw. Erkennung ist aber wahrscheinlich wohl nicht möglich.
Anders sieht es in den einzelnen Zellen von Excel aus, mit ActiveCell.Character( Start:= irgendwas, Length := irgendwas). Fond.Superscript = True
bzw. Subscript = True für tiefergestellte Zeichen gibt es natürlich Verarbeitungsmöglichkeiten. Half mir aber nichts.
Habe mich dann der WordProgrammierung zugewendet, das war erfolgreicher.  Falls ich mir irren sollten bzgl. der Textboxen
nehme jeden Rat gerne dankbar. Bezüglich der Rückmeldung: Ich denke einige Leute wußten im Forum schon
das es nicht machbar ist, also auch keine Vorschläge.
Nora
Antworten Top
#5
Deklaration als static Variable scheint bei ReDim aber wohl nicht möglich.

vgl. https://msdn.microsoft.com/en-us/library...60%29.aspx
Antworten Top
#6
Hallo Nora,

wenn Du ein Beispiel geben könntest, wie und was genau ablaufen soll, dann könnte man auch gezielt Vorschläge machen.

Hier mal ein Beispiel wie es theoretisch möglich wäre, ob es Sinn macht ist eine andere Frage:


Code:
Option Explicit
Dim varFeld(1 To 50)
Dim i As Long

Private Sub CommandButton2_Click()
 ActiveCell.Offset(1, 0).Select
 i = i + 1
 varFeld(i) = ActiveCell.Row
 Me.Label1.Caption = varFeld(i)
End Sub


Du siehst, das das Feld und die Variable außerhalb der Prozedur dimensioniert bzw definiert sind.

Man kann auch die Tag Eigenschaft der Steuerelemente oder der Userform nutzen:


Code:
Option Explicit
Dim varFeld(1 To 50)
Dim i As Long

Private Sub CommandButton2_Click()
 ActiveCell.Offset(1, 0).Select
 i = i + 1
 varFeld(i) = ActiveCell.Row
 Me.Label1.Caption = varFeld(i)
End Sub

Hier habe ich bei Erstellung der Userform in der Tag Eigenschaft den Wert 0 voreingestellt.
In beiden Fällen muss man natürlich wissen, wann die Werte zurückgesetzt werden müssen.

Dann gäbe es noch die ReDim Preserve Anweisung. Damit kann das Feld dynamisch erweitert werden, je nach bedarf. Siehe Excel Online Hilfe.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Nora Fernandez
Antworten Top
#7
Hallöchen,

damit die Variable Modulübergreifend wirkt, kannst Du sie Public dimensionieren.
Du kannst sie auch mit Redim verwenden:

Code:
Option Explicit
Public vFeld

Sub test1()
ReDim vFeld(1 To 50)
test2
End Sub

Sub test2()
MsgBox UBound(vFeld)
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Nora Fernandez
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste