Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Userform Listbox


Betrifft: Userform Listbox von: Bernd Kiehl
Geschrieben am: 16.10.2017 22:40:48

Hallo zusammen,
Folgendes Problem kann ich nicht lösen, auch Tante Google sagt nicht viel.

Und zwar lade ich über nachfolgenden Befehl Daten aus Tabelle in eine Listbox, leider wird in Spalte 2 der Listbox der Wert als Zahl z.B. 0,061 anstatt 6,10%, obwohl in der Tabelle ist die Zelle bzw. Spalte als Prozent formatiert.

Hier der Code den ich verwende:


Private Sub UserForm_Activate()
  Sheets("DivRanking").Select
  ListBox1.List = Range("A3:B12").Value
  ListBox1.ColumnCount = 2

Kann mir jemand helfen?
Danke im Voraus

Gruß Bernd

Office 2016 Pro 32bit

  

Betrifft: ohne Select ... von: Matthias L
Geschrieben am: 16.10.2017 23:32:22

Hallo

Nimm doch eine Hilfsspalte

DivRanking

 ABC
1 Format 
2 0,00 "%" 
3Zeile 36,10 %6,10%
4Zeile 46,20 %6,20%
5Zeile 56,30 %6,30%
6Zeile 66,40 %6,40%
7Zeile 76,50 %6,50%
8Zeile 86,60 %6,60%
9Zeile 96,70 %6,70%
10Zeile 106,80 %6,80%
11Zeile 116,90 %6,90%
12Zeile 127,00 %7,00%

Formeln der Tabelle
ZelleFormel
B3=C3*100
B4=C4*100
B5=C5*100
B6=C6*100
B7=C7*100
B8=C8*100
B9=C9*100
B10=C10*100
B11=C11*100
B12=C12*100


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Das Select ist unnötig

  ListBox1.List = Sheets("DivRanking").Range("A3:B12").Value
  ListBox1.ColumnCount = 2


Gruß Matthias


  

Betrifft: AW: ohne Select ... von: Hajo_Zi
Geschrieben am: 17.10.2017 05:56:29

Hallo Bernd,

vielleicht
ListBox1.List = Range("A3:B12").Text

GrußformelHomepage

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.

Beiträge von Werner, Luc, robert und folgende lese ich nicht.


  

Betrifft: AW: ohne Select ... von: Bernd Kiehl
Geschrieben am: 17.10.2017 07:14:36

Hallo Hajo,
Danke für deinen Vorschlag, bekomme aber Fehlermeldung "Eigenschaft 'List' konnte nicht gesetzt werden".
Was muss ich ändern um die Fehlermeldung nicht zu bekommen?

Gruß Bernd


  

Betrifft: AW: ohne Select ... von: Hajo_Zi
Geschrieben am: 17.10.2017 16:24:02

Hallo Bernd,

die Zeile war von Dir und lief. ich habe nur Value ersetzt durch Text.

Gruß Hajo


  

Betrifft: AW: mit .Text funktioniert es nicht, von: Daniel
Geschrieben am: 17.10.2017 17:01:11

weil VBA einen Zellbereich mit dieser Eigenschaft nicht in ein Array konvertieren kann.

die Kopplung Array - Zellbereich funktioniert nur mit den Eigenschaften .Value und den .Formula-Varianten.
Mit allen anderen Eigenschaften, darunter auch TEXT funktioniert das nicht!

Wenn man die .Text-Werte der Zellen lesen will, dann geht das nur einzeln über eine Schleife.

Gruß Daniel


  

Betrifft: Danke von: Hajo_Zi
Geschrieben am: 17.10.2017 17:07:58

Hallo Daniel,

Danke für die Information.

GrußformelHomepage


  

Betrifft: AW: ohne Select ... von: Bernd Kiehl
Geschrieben am: 17.10.2017 07:11:13

Hallo Matthias,
Danke für deinen Vorschlag, hab ihn umgesetzt um komme zum gleichen Ergebnis wie du. Zahl teilweise ohne oder nur mit einer Nachkommastelle. Es sollte schon so aussehen z.B. 6,10%.

Gibt es diese Möglichkeit nicht?

Gruß Bernd


  

Betrifft: Probiere es mal so,... von: Case
Geschrieben am: 17.10.2017 07:27:27

Hallo, :-)

... wie in dem Beispiel: ;-)

Beispieldatei...

Servus
Case



  

Betrifft: AW: Probiere es mal so,... von: Bernd Kiehl
Geschrieben am: 17.10.2017 07:42:34

Hallo Case,
Dat passt!!!
Wie muss ich den Code verändern um nicht nur Listbox1 sondern LB2, LB3 und LB4 ebenso einzubinden.
Hier ist der komplette Code meiner UF...

  Sheets("DivRanking").Select
  ListBox1.List = Range("A3:B12").Value
  ListBox1.ColumnCount = 2
  ListBox1.ColumnWidths = "240,40"
  ListBox2.List = Range("C3:D12").Value
  ListBox2.ColumnCount = 2
  ListBox2.ColumnWidths = "240,40"
  ListBox3.List = Range("E3:F12").Value
  ListBox3.ColumnCount = 2
  ListBox3.ColumnWidths = "240,40"
  ListBox4.List = Range("G3:H12").Value
  ListBox4.ColumnCount = 2
  ListBox4.ColumnWidths = "240,40"
Kannst du mir sagen, wie ich deinen Code verändern muss?

Gruß Bernd


  

Betrifft: AW: ohne Select ... von: Daniel
Geschrieben am: 17.10.2017 07:29:46

Hi

Verwende als Formel in der Hilfsspalte

=Text(C3;"0,00%")

Gruß Daniel


  

Betrifft: AW: ohne Select ... von: Bernd Kiehl
Geschrieben am: 17.10.2017 07:44:20

Hallo Daniel,
Danke für deinen Vorschlag, aber die Antwort von Case hat überzeugt.
Gruß Bernd


  

Betrifft: also zu und geschlossen ... (owT) von: EtoPHG
Geschrieben am: 17.10.2017 08:44:21




  

Betrifft: AW: also zu und geschlossen - Nein!!! von: Bernd Kiehl
Geschrieben am: 17.10.2017 08:49:40

Hallo EtoPHG,
nein nicht geschlossen, da ich es nicht schaffe alle 4 listboxen einzulesen.
Kannst du helfen?

Gruß Bernd


  

Betrifft: AW: also zu und geschlossen ... (owT) von: Bernd Kiehl
Geschrieben am: 17.10.2017 08:55:41

Hallo,
hier nochmal mein Code und der im Beitrag von Case...

Private Sub UserForm_Activate()
  Sheets("DivRanking").Select
  ListBox1.List = Range("A3:B12").Value
  ListBox1.ColumnCount = 2
  ListBox1.ColumnWidths = "240,40"
  ListBox2.List = Range("C3:D12").Value
  ListBox2.ColumnCount = 2
  ListBox2.ColumnWidths = "240,40"
  ListBox3.List = Range("E3:F12").Value
  ListBox3.ColumnCount = 2
  ListBox3.ColumnWidths = "240,40"
  ListBox4.List = Range("G3:H12").Value
  ListBox4.ColumnCount = 2
  ListBox4.ColumnWidths = "240,40"
End Sub
Von Case:
Private Sub UserForm_Activate()
    Dim lngTMP As Long
    With ListBox1
        .ColumnCount = 2
        .BoundColumn = 2
        .ColumnWidths = "240;60"
    End With
    With ThisWorkbook.Worksheets("DivRanking")
        For lngTMP = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
            ListBox1.AddItem .Cells(lngTMP + 2, 1).Text
            ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(lngTMP + 2, 2).Text
        Next lngTMP
    End With
End Sub
Ich schaffe es nicht den Code von Case so umzubauen, so dass er alle 4 Listboxen aus den dementsprechenden Spalten der Tabelle ausliest.

Kann jemand helfen?
Danke im Voraus!

Gruß Bernd


  

Betrifft: AW: also zu und geschlossen ... (owT) von: EtoPHG
Geschrieben am: 17.10.2017 09:06:30

Hallo Bernd,

Was ist daran so schwierig?
Du kopierst den ganzen Code (ohne das DIM lngTMP) 4 mal untereinander.
Ersetzt in den kopierten Listbox1 durch ListBox2, ..3 und ..4
Ersetzt "A" durch "C", "E" und "G"
und die Spaltenindex der .Cells-Anweisungen ,1) durch ,3) ,5) und ,7)

Gruess Hansueli


  

Betrifft: AW: also zu und geschlossen ... (owT) von: Bernd Kiehl
Geschrieben am: 17.10.2017 09:16:58

Hallo Hansueli,

das mit dem runterkopieren hatte ich bereits gemacht, allerdings den Spaltenindex vergessen.
Danke, jetzt funktioniert es so, wie es sollte.

Sonnige Grüße aus Bremen
Bernd


Beiträge aus den Excel-Beispielen zum Thema "Userform Listbox"