12.06.2017, 10:00
12.06.2017, 10:06
Hallo,
dann gibt es den Index arrArt(b + 1) des Arrays nicht...
Ich gehe davon aus, dass dein Fehler in der Ermittlung von anz = Application.Count(ws.Range(ws.Cells(3, 5), ws.Cells(3, ls))) liegt. Wonach Du hier suchst, weiß ich nicht.
dann gibt es den Index arrArt(b + 1) des Arrays nicht...
Ich gehe davon aus, dass dein Fehler in der Ermittlung von anz = Application.Count(ws.Range(ws.Cells(3, 5), ws.Cells(3, ls))) liegt. Wonach Du hier suchst, weiß ich nicht.
12.06.2017, 10:45
Hallo, danke für die antworten. Aber ich denke ich gehe jetzt doch den Alternativen Weg, da es wohl doch komplizierter ist den Code anzupassen.
Ich habe jetzt schon eine 2. Listbox eingefügt, die auf eine Hilfspalte zugreift, die mir dann die Zahl in Listbox 1 als Textbaustein anzeigt. Die Hilfsspalte erstelle ich über WENN blabla.
So lange in jedem Feld auch was steht geht das auch. Aber leider bekomme ich diese Wenn Formeln nicht so hin, das in jedem Feld was steht( Dazu müßte ich WennOder........Oder......) da habe ich aber Probs das hinzubekommen.
Daher momentan 2 Probleme mit diesem Code:
1. wie erkennt der Code auch noch nach Lücken den Text?
2. was müßte ich eingeben, das sich die Listbox sofort aktualisiert wenn sich in der Zeile was ändert.
Momentaner Coder der neuen Listbox:( Das mit Texbox3 stand so drin, ohne das kommts zu fehlern, is aber überflüßig)
Die Codezeile um die Listbox zu aktualisieren müßte hier mit eingebaut werden:
Ich habe jetzt schon eine 2. Listbox eingefügt, die auf eine Hilfspalte zugreift, die mir dann die Zahl in Listbox 1 als Textbaustein anzeigt. Die Hilfsspalte erstelle ich über WENN blabla.
So lange in jedem Feld auch was steht geht das auch. Aber leider bekomme ich diese Wenn Formeln nicht so hin, das in jedem Feld was steht( Dazu müßte ich WennOder........Oder......) da habe ich aber Probs das hinzubekommen.
Daher momentan 2 Probleme mit diesem Code:
1. wie erkennt der Code auch noch nach Lücken den Text?
2. was müßte ich eingeben, das sich die Listbox sofort aktualisiert wenn sich in der Zeile was ändert.
Momentaner Coder der neuen Listbox:( Das mit Texbox3 stand so drin, ohne das kommts zu fehlern, is aber überflüßig)
Code:
Private Sub UserForm_Activate()
Call test
Me.LBDat.List = arrDat
Me.LBArt.List = arrArt
Me.LBDat.ListIndex = indDat + 1
Worksheets("Hilfe").Activate
Range("B2").Select
Me.TextBox3.Value = ""
' Liste zunächst löschen
Me.ListBox1.Clear
' Liste neu füllen
While ActiveCell.Value <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(0, 1).Activate
Wend
End Sub
Code:
Sub Lieferung9084()
'
' Lieferung9084 Makro
'
With Sheets("Lieferungen")
.Range("E3:X3").ClearContents
.Range("J1:N1").Copy
.Range("J3").PasteSpecial xlPasteAll
End With
End Sub
12.06.2017, 11:03
Hallo,
ich blicke zwar bei deinem ganzen Projekt überhaupt nicht durch, aber sei es wie es sei. Verwende für dein Vorhaben eine For-Schleife, die bis zur letzten Spalte läuft. Im Schleifenrumpf fragst Du dann ab, ob die jeweils aktuelle Zelle nicht leer ist, wenn ja, AddItem...
Verzichte in deinem Code ausserdem auf Activate und Select. Referenziere deine Bezüge vollständig und verwendet With-Blöcke.
ich blicke zwar bei deinem ganzen Projekt überhaupt nicht durch, aber sei es wie es sei. Verwende für dein Vorhaben eine For-Schleife, die bis zur letzten Spalte läuft. Im Schleifenrumpf fragst Du dann ab, ob die jeweils aktuelle Zelle nicht leer ist, wenn ja, AddItem...
Verzichte in deinem Code ausserdem auf Activate und Select. Referenziere deine Bezüge vollständig und verwendet With-Blöcke.
Code:
' Liste neu füllen
With Worksheets("Hilfe")
For i = 2 To .Cells(2, Columns.Count).End(xlToLeft).Column
If .Cells(2, i).Value <> "" Then
ListBox1.AddItem .Cells(1, i).Value
End If
Next i
End With
12.06.2017, 11:05
Hallo,
danke, werd es mal probieren.
danke, werd es mal probieren.
12.06.2017, 11:37
Hallo,
konnte beide Probleme mehr oder weniger alleine lösen. Mit deinem Codeausschnitt passierte nichts. Aber wie gesagt habs jetzt soweit das es so funktioniert wie ich es mir vorgestellt habe.
Aber wo kann ich die breite der Listbox so anpassen, das es nur so breit ist um die Zahlen anzuzeigen, aber keinen Scrollbalken unten darstellt?
konnte beide Probleme mehr oder weniger alleine lösen. Mit deinem Codeausschnitt passierte nichts. Aber wie gesagt habs jetzt soweit das es so funktioniert wie ich es mir vorgestellt habe.
Aber wo kann ich die breite der Listbox so anpassen, das es nur so breit ist um die Zahlen anzuzeigen, aber keinen Scrollbalken unten darstellt?
12.06.2017, 13:29
Hallo, das konnte ich jetzt alles soweit lösen, das es auch optisch alles passt.
Aber: kann man das irgendwie abschalten, das in der Listbox das selektierte Element nicht farblich hinterlegt wird? Bzw kann man die Schriftzeichen ganz ausblenden?? Ich habe die Liststyle.... eingeschaltet und möchte jetzt eigentlich nur die Auswahlmöglichkeit sehen und benutzen.
Aber: kann man das irgendwie abschalten, das in der Listbox das selektierte Element nicht farblich hinterlegt wird? Bzw kann man die Schriftzeichen ganz ausblenden?? Ich habe die Liststyle.... eingeschaltet und möchte jetzt eigentlich nur die Auswahlmöglichkeit sehen und benutzen.
15.06.2017, 17:23
Hallöchen,
Ziehe die Listbox einfach auf ausreichende Breite. Die Breite einzelner Spalten kannst Du über ColumnWiths einstellen
Mir fällt im Moment gerade nicht ein, wie ich es in VBA / Excel hinbekommen soll, dass das markierte Element nicht farblich hinterlegt wird, ergo auch nicht, wie man das abschallten kann
Zitat:Aber wo kann ich die breite der Listbox so anpassen, das es nur so breit ist um die Zahlen anzuzeigen
Ziehe die Listbox einfach auf ausreichende Breite. Die Breite einzelner Spalten kannst Du über ColumnWiths einstellen
Zitat:kann man das irgendwie abschalten, das in der Listbox das selektierte Element nicht farblich hinterlegt wird?
Mir fällt im Moment gerade nicht ein, wie ich es in VBA / Excel hinbekommen soll, dass das markierte Element nicht farblich hinterlegt wird, ergo auch nicht, wie man das abschallten kann
16.06.2017, 07:54
Hallo, danke für die Antwort.
Das mit dem Auseinanderzeihen is klar, aber ich wollte das schmaler haben ohne Balken, aber egal passt schon.
Das mit dem Auseinanderzeihen is klar, aber ich wollte das schmaler haben ohne Balken, aber egal passt schon.
17.06.2017, 05:29
Hallöchen,
dann experimentiere mal mit ColumnWiths. Excel VBA ist da etwas inkonsequent. Wenn Deine Listbox breiter ist als die Summe der Spaltenbreiten, wird ggf. kein Scrollbalken angezeigt. Wenn Du z.B. in einer einspaltigen LiBo 1 einstellst und sie ist 40 breit, dann werden so viele Zahlen angezeigt, wie auf die 40 passen. Bei mehreren Spalten musst Du schauen, wie es passt. Mit Breite 1 in der ersten Spalte siehst Du da recht wenig
dann experimentiere mal mit ColumnWiths. Excel VBA ist da etwas inkonsequent. Wenn Deine Listbox breiter ist als die Summe der Spaltenbreiten, wird ggf. kein Scrollbalken angezeigt. Wenn Du z.B. in einer einspaltigen LiBo 1 einstellst und sie ist 40 breit, dann werden so viele Zahlen angezeigt, wie auf die 40 passen. Bei mehreren Spalten musst Du schauen, wie es passt. Mit Breite 1 in der ersten Spalte siehst Du da recht wenig