Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
03.03.2016 15:13:41 |
Sunshine |
|
|
Autofilter in Listenfeld übertragen |
03.03.2016 15:19:20 |
Gast69176 |
|
|
|
03.03.2016 15:20:11 |
Gast80555 |
|
|
Von:
Gast69176 |
Datum:
03.03.2016 15:19:20 |
Views:
1278 |
Rating:
|
Antwort:
|
Thema:
Autofilter in Listenfeld übertragen |
Hallo zusammen,
ich habe 2 Fragen zur Programmierung eines Listenfeldes.
1) Ich habe ein Listenfeld, das gefiltert werden kann. Nun sollen im Listenfeld nur die sichtbaren Zeilen der Tabelle im Hintergrund stehen. Wenn ich meinen Code ausführen will erhalte ich allerdings die folgende Fehlermeldung: "Eigenschaft Column konnte nicht gesetzt werden. Ungültiger Eigenschaftswert."
für die Zeile: lst_Tender.Column(Spalte, lst_Tender.ListCount - 1) = Zelle.Offset(0, Spalte)
Leider kann ich den Fehler nicht finden.
Anbei mein kompletter Code:
Private Sub btn_filtern_Click()
Dim Zelle As Range
Dim Spalte As Integer
Dim letzteZeile As Long
Eventschalter = True
With tab_Daten
.AutoFilterMode = False
If txt_Kunde.Value = "" Then
.Range("B2").AutoFilter field:=3
Else .Range("B2").AutoFilter field:=3, Criteria1:=txt_Kunde.Value
End If
If txt_Abgabe.Value = "" Then
.Range("B2").AutoFilter field:=4
Else .Range("B2").AutoFilter field:=4, Criteria1:=txt_Abgabe.Value
End If
If comb_Status.Value = "" Then
.Range("B2").AutoFilter field:=8
Else .Range("B2").AutoFilter field:=8, Criteria1:=comb_Status.Value
End If
If txt_Verkäufer.Value = "" Then
.Range("B2").AutoFilter field:=12
Else .Range("B2").AutoFilter field:=12, Criteria1:=txt_Verkäufer.Value
End If
If comb_ES.Value = "" Then
.Range("B2").AutoFilter field:=13
Else .Range("B2").AutoFilter field:=13, Criteria1:=comb_ES.Value
End If
If comb_Entscheidung.Value = "" Then
.Range("B2").AutoFilter field:=14
Else .Range("B2").AutoFilter field:=14, Criteria1:=comb_Entscheidung.Value
End If
If comb_PSD.Value = "" Then
.Range("B2").AutoFilter field:=15
Else .Range("B2").AutoFilter field:=15, Criteria1:=comb_PSD.Value
End If
lst_Tender.RowSource = ""
lst_Tender.Clear
letzteZeile = .Range("A" & .Rows.Count).End(xlUp).Row
For Each Zelle In .UsedRange.Columns(1).SpecialCells(xlCellTypeVisible)
If Zelle.Row <> 1 Then
lst_Tender.AddItem Zelle.Value
For Spalte = 1 To 21
lst_Tender.Column(Spalte, lst_Tender.ListCount - 1) = Zelle.Offset(0, Spalte)
Next Spalte
End If
Next Zelle
Eventschalter = False
End With
End Sub
2) Die Informationen des Listenfeldes werden zusätzlich in Textfeldern angezeigt. Hier kann der User diese bearbeiten. Leider bekomme ich noch einen Fehler beim Code zum Speichern der Änderungen. Hier erhalte ich den Fehler in der Zeile: Zeile = .Range("A:A").Find(what:=txt_Projekt.Value, lookat:=xlWhole).Row
Anbei der vollständige Code:
Private Sub btn_speichern_Click()
Dim Zeile As Long
Eventschalter = True
With tab_Daten
Zeile = .Range("A:A").Find(what:=txt_Projekt.Value, lookat:=xlWhole)
.Row .Range("C" & Zeile).Value = txt_Kunde.Value
.Range("D" & Zeile).Value = Format(txt_Abgabe.Value, "dd.mm.yyyy")
.Range("L" & Zeile).Value = txt_Verkäufer.Value
.Range("N" & Zeile).Value = comb_Entscheidung.Value
.Range("M" & Zeile).Value = comb_ES.Value
.Range("O" & Zeile).Value = comb_PSD.Value
.Range("H" & Zeile).Value = comb_Status.Value
End With
Eventschalter = False
End Sub
Vielleicht könnt ihr mir helfen. Danke und viele Grüße |
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
03.03.2016 15:13:41 |
Sunshine |
|
|
Autofilter in Listenfeld übertragen |
03.03.2016 15:19:20 |
Gast69176 |
|
|
|
03.03.2016 15:20:11 |
Gast80555 |
|
|