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

Fehler im Code - Array

Fehler im Code - Array
Ronald
Hallo Leute,
ich habe ein Problem mit einem Makro. Diese Geschichte hat mir hier aus dem Forum der "Dirk aus Dubai" programmiert. Jetzt habe ich da einen kleinen Fehler entdeckt, den ich nicht selber beheben kann da ich nicht mit VBA umgehen kann. Vielleicht kann mir von Euch jemand helfen.
Also ich erfasse mit der Excel-Datei Rechnungen. Dazu benutze ich ein Formular, welches mir bei Eingabe einer Kostenstelle die entsprechende Kostenstellenbezeichnung ausgibt. Nun scheint da eine Verschiebung drin zu sein. Wenn ich die Kst. eingebe wird mir die Bezeichnung der Kst. unter der eingegebenen Kst. ausgegeben.
Ich hänge die Datei mal dran, es wäre schön wenn mir jemand helfen würde.
Gruß Ronald
https://www.herber.de/bbs/user/76520.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler im Code - Array
08.09.2011 11:48:51
Rudi
Hallo,
Combobox.Listindex fängt bei 0 an, dein Array bei 1
Ergo

Private Sub Combo_KST_Click()
If ComboSel = True Then
Exit Sub
End If
ComboSel = True
Combo_KSTBez.Value = KstArr(Combo_KST.ListIndex + 1, 1)
ComboSel = False
End Sub

Gruß
Rudi
AW: Fehler im Code - Array
08.09.2011 12:03:45
Ronald
Danke Rudi,
in der Datei hab ich's gendert und es funktioniert. Jetzt hab ich noch eine andere Datei mit _ echten Daten die ich nicht veröffentlichen kann. In der sehe ich leider den Code nicht. Ich sehe nur das Formular und den folgenden Code:

Sub Beleg_erfassung()
'Dieses makro dient zum Erfassen eines neuen Belegs
Dim LastRow As Long, DatenArr(30), MyOffset As Long
ComboSel = False
UF1.Combo_KDN.SetFocus
UF1.Show
If UserSel  "Ok" Then
'Abbruch
Exit Sub
End If
'Behandle eingegebene Daten, schreibe in datenarray (Sortierung entsprechen Erfassungsblatt)
DatenArr(1) = UF1.TB_BelDatum.Value    'Belegdatum
DatenArr(2) = UF1.TB_BuDatum.Value    'Buchungsdatum
DatenArr(3) = UF1.TB_RechNr.Value    'Rechnungsdatum
DatenArr(4) = UF1.Combo_KDN.Value    'Kundennummer
DatenArr(5) = UF1.Combo_KndBez.Value    'Kundenbezeichnung
DatenArr(6) = UF1.Combo_Name1.Value    'Kundenname1
DatenArr(7) = UF1.Combo_Name2.Value    'Kundenname2
DatenArr(8) = UF1.Combo_Name3.Value    'Kundenname3
DatenArr(9) = UF1.Combo_Strasse.Value    'KundenStrasse
DatenArr(10) = UF1.Combo_PLZ.Value    'KundenPLZ
DatenArr(11) = UF1.Combo_Ort.Value    'KundenOrt
DatenArr(12) = UF1.Combo_KST.Value    'Kostenstelle
DatenArr(13) = UF1.Combo_KSTBez.Value    'Kostenstellenbezeichnung
DatenArr(14) = UF1.Combo_ArtNr.Value    'Artikelnummer
DatenArr(16) = UF1.Combo_ArtBez.Value    'Artikelbezeichnung
DatenArr(19) = UF1.TB_Menge.Value         'Menge
DatenArr(20) = ""                         'Einheit
DatenArr(21) = UF1.TB_NettoE.Value * DatenArr(19) 'Nettopreiss
LastRow = Sheets("Erfassung").Range("A65536").End(xlUp).Row + 1  '+1 fuer naechste Zeile nach  _
LastRow
'Daten eintragen
With Sheets("Erfassung")
MyOffset = 0
For i = 1 To 21 'anzahl der Spalten in Erfassungstabelle, ggf. anpassen
'If i = 20 Then  'Pruefe, ob Netto-e vorhanden
'    If NettoE = True Then
'        .Cells(LastRow, i).Value = DatenArr(i)
'        Exit For
'    End If
'End If
If DatenArr(i)  "" Then
.Cells(LastRow, i).Value = DatenArr(i)
End If
Next i
'jetzt noch die Artikeldaten (MWSt-KZ usw.)
For i = LBound(ArtikelArr) To UBound(ArtikelArr)
If Val(UF1.Combo_ArtNr.Value) = ArtikelArr(i, 0) Then
'fuelle Zellen
.Cells(LastRow, 20).Value = ArtikelArr(i, 3) 'Mengeneinheit
.Cells(LastRow, 22).Value = ArtikelArr(i, 5) 'MWST-satz
.Cells(LastRow, 15).Value = ArtikelArr(i, 4) 'Gegenkonto
Exit For
End If
Next i
'Formeln herunterkopieren
.Range(Cells(LastRow, 22), Cells(LastRow, 26)).FormulaR1C1 = .Range(Cells(LastRow - 1, 22),  _
Cells(LastRow - 1, 26)).FormulaR1C1
End With
'Zeile formatieren
Range("E" & LastRow & ":K" & LastRow).Font.Size = 8
Range("M" & LastRow).Font.Size = 8
ComboSel = False
'Jetzt noch formeln der Letzten Zeile in Blatt 'fuer Kontierung' kopieren
With Sheets("für Kontierung")
LastRow = .Range("A65536").End(xlUp).Row
.Range(.Cells(LastRow + 1, 1).Address, Cells(LastRow + 1, 10).Address).FormulaR1C1 = _
.Range(.Cells(LastRow, 1).Address, .Cells(LastRow, 10).Address).FormulaR1C1
End With
MsgBox "Beleg ist erfasst.", 64
Unload UF1
NettoE = False
'Fokus auf Knopf 'Neuer Beleg'
On Error Resume Next
CB_Erf.Activate
On Error GoTo 0
End Sub
Kann es sein, dass da was ausgeblendet ist?
Gruß
Ronald
Anzeige
AW: Fehler im Code - Array
08.09.2011 12:27:15
Rudi
Hallo,
geh mal im VBE auf die UF und mach 'nen Doppeklick auf das Kst-Feld.
Gruß
Rudi
AW: Fehler im Code - Array
08.09.2011 13:15:53
Ronald
Super Rudi,
ich danke Dir.
Gruß
Ronald

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige