Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Einfügen einer Formel in vba bringt #BEZUG!

Einfügen einer Formel in vba bringt #BEZUG!
23.06.2015 16:55:55
Christian
Hey,
ich bin weiter bei der Automatisierung diverser Auswertungen. Dabei füge ich Spalten ein und darin Formeln (FormulaR1C1). Leider werden die Formeln nicht berechnet sondern es kommt der Fehler #BEZUG!
Ich habe schon mittels application.sendkeys "{Enter}" versucht, das enter zu simulieren. Klappt nicht.
Sub BearbeitenxBU()
Dim quellBlatt As Worksheet
Dim zielBlatt As Worksheet
Dim sverweise As Worksheet
Dim überschriften As Worksheet
Dim letzteZeile As Long
Dim quelle As Range
Dim colRegiTypeText As Long
Dim col1stRegiDate As Long
Dim col2ndRegiDate As Long
Dim colSoldToParty As Long
Dim colShipToParty As Long
Dim colFscCode As Long
Dim ltzSverxModell As Long
Dim formelbereich As Range
Dim fehler As Boolean
Dim i As Long
Set quellBlatt = Worksheets("x BU Import")
Set zielBlatt = Worksheets("x BU Export")
Set sverweise = Worksheets("Sverweis-Tabellen")
Set überschriften = Worksheets("Überschriften")
quellBlatt.Select
quellBlatt.Range("A1").Activate
Set quelle = ActiveCell.CurrentRegion
letzteZeile = quellBlatt.Range("A100000").End(xlUp).Row
ltzSverxModell = sverweise.Range("d100000").End(xlUp).Row
'Kopie aller Daten und Einfügen notwendiger Spalten (8)
quelle.Copy
zielBlatt.Cells(1, 9).PasteSpecial xlPasteValues
zielBlatt.Select
'Definiere absolute Spaltennummer zu Formelgrößen
colRegiTypeText = zielBlatt.Cells.Find(What:="Registration Type Text").Column
col1stRegiDate = zielBlatt.Cells.Find(What:="1st Regi Date").Column
col2ndRegiDate = zielBlatt.Cells.Find(What:="2nd Regi Date").Column
colSoldToParty = zielBlatt.Cells.Find(What:="Sold to Party").Column
colShipToParty = zielBlatt.Cells.Find(What:="Ship to Party").Column
colFscCode = zielBlatt.Cells.Find(What:="FSC Code").Column
'Überschriften und Formeln einfügen
überschriften.Range("A3:H3").Copy
zielBlatt.Cells(1, 1).PasteSpecial xlPasteAll
Set formelbereich = zielBlatt.Range("a2:h2")
formelbereich.Cells(1, 1).FormulaR1C1 = "=if(and(rc(" & colRegiTypeText - 1 & ")="" _
Endkundenverkauf privat"",rc(" & col1stRegiDate - 1 & ")=rc(" & col2ndRegiDate - 1 & ")),""nein" _
",""ja"")"
formelbereich.Cells(1, 2).FormulaR1C1 = "=IF(DAYS360(rc(" & col1stRegiDate - 2 & "),rc(" &   _
_
col2ndRegiDate - 2 & "))>360,""nein"",""ja"")"
formelbereich.Cells(1, 3).FormulaR1C1 = "=MID(rc(" & colSoldToParty - 3 & "),6,1)"
formelbereich.Cells(1, 4).FormulaR1C1 = "=IF(rc(-1)=""0"",""ja"",""nein"")"
formelbereich.Cells(1, 5).FormulaR1C1 = "=Right(rc(" & colShipToParty - 5 & "),4)"
formelbereich.Cells(1, 6).FormulaR1C1 = "=9301530000+rc(-1)"
formelbereich.Cells(1, 7).FormulaR1C1 = "=Left(rc(" & colFscCode - 7 & "),2)"
formelbereich.Cells(1, 8).FormulaR1C1 = "=VLOOKUP(RC[-1],'Sverweis-Tabellen'!R4C4:R" &  _
ltzSverxModell & "C5,2,FALSE)"
For i = 1 To 8
formelbereich.Cells(1, i).Select
formelbereich.Cells(1, i).Activate
Application.SendKeys "{Enter}", True
i = i + 1
Next i
zielBlatt.Range("A2:H2").AutoFill Range("A2:H" & letzteZeile), xlFillSeries
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfügen einer Formel in vba bringt #BEZUG!
23.06.2015 17:10:02
Rudi
Hallo,
in RC-Bezügen muss der Versatz mit [] definiert werden. Nicht ().
z.B.
formelbereich.Cells(1, 1).FormulaR1C1 = "=if(and(rc(" & colRegiTypeText - 1 & ")=""
muss
formelbereich.Cells(1, 1).FormulaR1C1 = "=if(and(rc[" & colRegiTypeText - 1 & "]=""
Gruß
Rudi

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige