just4fun1990
Goto Top

Textbox Zelle ändern

Hallo Administrator.de User,

wieder einmal eine Frage (nimmt ja heute kein Ende face-smile )

Und zwar möchte ich eine Listbox haben, die mir die Geräte auflistet am besten untereinander aufgelistet:

erstes Problem die Geräte sind nebeneinander von Zelle A1 - Q1 aufgeschrieben wie krieg ich die dann in der Listbox untereinander.
zweites Problem ich möchte über eine Schaltfläche das in der Listbox markierte Gerät zurücksetzen können. Sprich wenn es ursprünglich "Gerät 3" heißt ich es dann umbenannt habe zu "Beispiel" dann möchte ich, wenn ich auf die Schaltfläche zurücksetzen Klicke,
dass es dann wieder in Gerät 3 umbenannt wird.


Ich hoffe ihr könnt mir dabei Helfen

Viele Grüße

Justin

Content-Key: 258314

Url: https://administrator.de/contentid/258314

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: 114757
114757 22.12.2014 aktualisiert um 13:27:22 Uhr
Goto Top
Moin,
erstes Problem die Geräte sind nebeneinander von Zelle A1 - A17 aufgeschrieben wie krieg ich die dann in der Listbox untereinander.
ListBox1.Clear
For Each cell In Sheets(1).Range("A1:Q1")  
    ListBox1.AddItem cell.Value
Next
das zweite Problem verstehe ich so nicht ...

Gruß jodel32
Mitglied: Just4fun1990
Just4fun1990 22.12.2014 um 14:54:57 Uhr
Goto Top
Hi Jodel32,

der Code funktioniert bei mir leider nicht.

Mit freundlichen Grüßen Justin
Mitglied: 114757
114757 22.12.2014 aktualisiert um 15:04:32 Uhr
Goto Top
Zitat von @Just4fun1990:
der Code funktioniert bei mir leider nicht.
"Funktioniert nicht " ist keine qualifizierte Fehlermeldung !!

Der geht problemlos wenn man ihn an seine Umgebung anpasst !! Ich gehe recht in der Annahme das du eine ListBox(Name ListBox1) in einer Userform meinst ? Der Code geht in diesem Fall einwandfrei...

Sheet und Range muss natürlich auch an deine Umgebung angepasst werden, das kann man hier doch erwarten oder ??

p.s. du meintest wohl anstatt A1:A17 eher A1:Q1 denn dein genannter Range wäre eine Spalte und kein Horizontaler Bereich !!!!
Mitglied: Just4fun1990
Just4fun1990 22.12.2014 um 15:14:35 Uhr
Goto Top
Tut mir leid, der Code funktioniert aber nicht bei mir ka wieso trotzdem danke
Mitglied: 114757
114757 22.12.2014 aktualisiert um 15:17:10 Uhr
Goto Top
Zitat von @Just4fun1990:

Tut mir leid, der Code funktioniert aber nicht bei mir ka wieso trotzdem danke

Aha, mal wieder einer der sich nicht helfen lassen will ...

"Funktioniert nicht " ist keine qualifizierte Fehlermeldung !!
Mitglied: Just4fun1990
Just4fun1990 23.12.2014 um 07:20:21 Uhr
Goto Top
Hi Jodel32,

tut mir leid aber mein Excel funktioniert nicht immer richtig. (habe das schon öfters feststellen müssen).
Mittlerweile funktioniert der Code. (komisch bei mir war, dass der Code im "kaputten" Excel nicht funktionierte und
trotzdem wurde einfach kein Fehlercode angezeigt deswegen konnte ich dir auch keinen sagen, denn die UserForm blieb einfach weiß.)

So jetzt zum zweiten Problem:

Gerät 1-17 sind die Standardbezeichnungen der Zellen. Angenommen, ich hätte jetzt die Zelle B1 (Also "Gerät 2") in z.B. "Autokran" umgeschrieben, dann wird in der Listbox "Autokran" anstatt "Gerät 2" angezeigt. Ich möchte, dass wenn ich jetzt auf "Autokran" in der Listbox klicke und dann auf die Schaltfläche Gerät löschen klicke, dass er dann nur die Zelle B1 (Also "Autokran") wieder in "Gerät 2" umbenennt.

Hoffe ich konnte mein Problem diesmal besser erklären.
Ps. Tut mir leid für die ich sag mal Unannehmlichkeiten.

Mit freundlichen Grüßen Justin
Mitglied: 114757
114757 23.12.2014 um 10:12:47 Uhr
Goto Top
Nehme einfach den ListIndex des markierten Eintrags in der Listbox für eine Referenz auf deine Zelle im Arbeitsblatt:
Cells(1, (ListBox1.ListIndex +1)).Value = "Gerät " & (ListBox1.ListIndex + 1)
und feddich ist die Laube.

Gruß jodel32
Mitglied: Just4fun1990
Just4fun1990 23.12.2014 um 10:25:12 Uhr
Goto Top
Hi Jodel32,

ich bin erst vor seit gut zwei Monaten in VBA eingestiegen, kannst du mir vielleicht erklären anhand deines Codes den du mir vorher geschickt hast, wie genau ich das zu machen habe? Ich denke du beherrschst VBA schon etwas länger als ich. Habe nachsehen mit mir face-smile

Gruß Justin
Mitglied: 116301
Lösung 116301 24.12.2014 aktualisiert um 12:19:42 Uhr
Goto Top
Hallo Justin!

Soweit ich das verstanden habe, ginge das in etwa so:
Option Explicit

Private Const SheetName = "Tabelle1"    'Tabellenname anpassen  

Private Sub UserForm_Initialize()   'ListBox initialisieren  
    ListBox1.List = WorksheetFunction.Transpose(Sheets(SheetName).Range("A1:Q1"))  
End Sub

Private Sub CommandButton1_Click()  'Zurücksetzen  
    Dim ListIndex As Long
    
    With ListBox1
        ListIndex = .ListIndex
        If ListIndex >= 0 Then
            Sheets(SheetName).Range("A1").Offset(0, ListIndex).Value = "Gerät " & ListIndex + 1  
           .List = WorksheetFunction.Transpose(Sheets(SheetName).Range("A1:Q1"))  
           .ListIndex = ListIndex
        End If
    End With
End Sub

Grüße Dieter
Mitglied: Just4fun1990
Just4fun1990 24.12.2014 um 11:08:35 Uhr
Goto Top
Hi Dieter,

den Code habe ich gesucht vielen Dank. Funktioniert prima face-smile

Viele Grüße

Justin