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