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

Warum werden nicht alle...

Warum werden nicht alle...
07.03.2022 14:34:27
wolfgang
Hallo zusammen,
habe folgendes Makro unter Hilfe Forum:
Meine Frage, WARUM werden nicht alle Daten angezeigt, es werden 8 weniger Daten angezeigt.
Klicke ich auf sortieren, werden alle Daten angezeigt.
<pre>Public Sub UserForm_Initialize()
With UserForm1
Me.Top = Application.Top
Me.Left = Application.Left
Me.Height = Application.Height
Me.Width = Application.Width
End With
Dim iIndex As Integer
Dim sBlattname As String
Dim letzteA As Long, Z As Long
Dim dic As Object, arr
With Worksheets("Adressen")
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "250;160;160;160;130;100;80;50;60;20;5" '80 =€, 50=Datum, auftrags.Nr.
ListBox1.Font.Size = 10
letzteA = .Cells(.Rows.Count, 3).End(xlUp).Row
ListBox1.List = .Range("B3:K" & letzteA).Value
End With
Dim i
For i = 0 To ListBox1.ListCount - 1
ListBox1.List(i, 6) = Format(ListBox1.List(i, 6), "currency") 'damit wird € spalt 6 angezeigt
Next i
' ComboBox1.ListIndex = 0 'wenn raus, dann werden die € angezeigt zur 1. stelle
arr = ListBox1.List
ComboBox1.Clear
ComboBox1.AddItem "Alle anzeigen", 0
For Z = 0 To UBound(arr, 1)
ComboBox1.AddItem arr(Z, 1)
Next
Label5.Caption = ActiveSheet.Range("b1")
Label9.Caption = Format(ActiveSheet.Range("h2").Value, ("#,##0.00"))
Label11.Caption = ListBox1.ListCount ' anzahl anzeigen
TextBox1 = " "
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub</pre>
mfg wolfgang

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum werden nicht alle...
07.03.2022 14:38:43
ChrisL
Hi

letzteA = .Cells(.Rows.Count, 3).End(xlUp).Row
3 = 3. Spalte (C) und nicht A
cu
Chris
Sorry Chris..
07.03.2022 14:49:54
wolfgang
Hallo Christ,
steht so drin:
With Worksheets("Adressen")
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "250;160;160;160;130;100;80;50;60;20;5" '80 =€, 50=Datum, auftrags.Nr.
ListBox1.Font.Size = 10
letzteC = .Cells(.Rows.Count, 3).End(xlUp).Row
ListBox1.List = .Range("B3:K" & letzteC).Value
End With
keine Änderung !
mfg wolfgang
AW: Sorry Chris..
07.03.2022 15:04:40
ChrisL
Hi
Meine Vermutung wäre einfach, dass in Spalte C weniger Zeilen befüllt sind und darum die letzte Zeile nicht stimmt.
Ansonsten sehe ich keine besonderen Hürden resp. der Code funktioniert bei mir.
Ein Detail:

"250;160;160;160;130;100;80;50;60;20;5"
sind 11 statt 10 Spalten
cu
Chris
Anzeige
Hallo Chris, hatte ich auf 11 geändert.
07.03.2022 15:13:45
wolfgang
AW: Warum werden nicht alle...
07.03.2022 14:56:01
Rudi

Klicke ich auf sortieren,
Wo?
Darüber hinaus ist dein Code ganz schön chaotisch.
Mal ein Bisschen aufgeräumt:

Public Sub UserForm_Initialize()
Dim iIndex As Integer
Dim sBlattname As String
Dim letzteA As Long, Z As Long
Dim dic As Object, arr
Dim i
With Worksheets("Adressen")
letzteA = .Cells(.Rows.Count, 3).End(xlUp).Row
End With
With UserForm1
.Top = Application.Top
.Left = Application.Left
.Height = Application.Height
.Width = Application.Width
With .ListBox1
.ColumnCount = 10
.ColumnWidths = "250;160;160;160;130;100;80;50;60;20;5" '80 =€, 50=Datum, auftrags.Nr.
.Font.Size = 10
.List = Worksheets("Adressen").Range("B3:K" & letzteA).Value
For i = 0 To .ListCount - 1
.List(i, 6) = Format(ListBox1.List(i, 6), "currency") 'damit wird € spalt 6 angezeigt
Next i
End With
End With
' ComboBox1.ListIndex = 0 'wenn raus, dann werden die € angezeigt zur 1. stelle
arr = Split("Alle anzeigen" & ";" & Join(ListBox1.List, ";"), ";")
ComboBox1.List = arr
Label5.Caption = ActiveSheet.Range("B1")
Label9.Caption = Format(ActiveSheet.Range("H2").Value, ("#,##0.00"))
Label11.Caption = ListBox1.ListCount ' anzahl anzeigen
With TextBox1
.SetFocus
.Value = ""
End With
End Sub
Gruß
Rudi
Anzeige
Hallo Rudi, so läuft es ! DANKE auch an Chris -)
07.03.2022 15:16:31
wolfgang
Warum wird die Textbox 1 nicht aktiviert ?
07.03.2022 15:27:21
wolfgang
Ich glaube ich habe den Fehler von vorhin...
07.03.2022 15:51:25
vorhin...
Hallo Rudi,
ich glaube das war der Fehler:
'--- mein altes ----
' TextBox1 = " "
' TextBox1.SetFocus
' With TextBox1
' .SetFocus
' .SelStart = 0
' .SelLength = Len(.Text)
' End With
hatte mit deinem Makro wieder reingesetzt, möchte gern das die TextBox1
beim öffnen selektiert wird.
Beim Start das gleiche also werden die Daten nicht voll angezeigt, beim
deaktivieren alles bestens.
Wie kann man die TextBox beim Start aktivieren ?
mfg wolfgang
AW: Ich glaube ich habe den Fehler von vorhin...
07.03.2022 16:38:43
vorhin...
bei mir wird die Textbox aktiviert.
Ich habe aber einen Fehler gefunden.
Statt:

arr = Split("Alle anzeigen" & ";" & Join(ListBox1.List, ";"), ";")
ComboBox1.List = arr
so:

arr = Worksheets("Adressen").Range("B2:B" & letzteA)
arr(1, 1) = "Alle wählen"
ComboBox1.List = arr
Gruß
Rudi
Anzeige
Danke Rudi, werde nochmal weiter suchen...
07.03.2022 16:59:11
wolfgang
Hallo Rudi,
DANKE.
Habe deinen Vorschlag eingesetzt.
Werde nochmal weiter suchen, damit die TextBox aktiviert wird.
mfg wolfgang
Den ganzen Tag... Danke -)
07.03.2022 17:42:38
wolfgang
Hallo Rudi,
danke nochmals,
bei mir klappt es einfach nicht, warum auch immer.
Vielleicht ist das Makro dafür Schuld aber das brauch ich für Auswahl.
Hatte ich von Onur.

Private Sub TextBox1_Change()
Dim Z As Long, nam, i As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
ListBox1.Clear
With ActiveSheet
For Z = 3 To .Cells(.Rows.Count, 3).End(xlUp).Row      ' sehr schnell- UF öffnen
nam = Cells(Z, 2) & Cells(Z, 3)             'hier geändert für spalte 2+3 vorher nur:  nam = Cells(z, 3)
If nam  "" And InStr(UCase(nam), UCase(TextBox1)) Then
Call AddList(i, Z)
i = i + 1
End If
Next Z
Label11.Caption = ListBox1.ListCount  ' anzahl anzeigen
Label5.Caption = ActiveSheet.Range("B1")
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Public Sub AddList(ii As Long, Z As Long)
Dim i
ListBox1.AddItem Cells(Z, i + 2)
For i = 1 To 9          'spalten anzahl ab spalte 2
ListBox1.List(ii, i) = Cells(Z, i + 2)
Next i
End Sub
mfg wolfgang
Anzeige
was Onur nicht bedacht hat ...
07.03.2022 22:45:58
Rudi
... ist, dass Application.EnableEvents keine Auswirkung auf Objekte in Userforms hat.
Gruß
Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige