Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1728to1732
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

Formel erkenne die eingefügte Werten nicht

Formel erkenne die eingefügte Werten nicht
17.12.2019 11:15:43
RO
Hallo zusammen,
ich brauche eure Hilfe.
Ich habe eine Code, der die Werte von 2 Exceldateien in 1 Exceldatei zusammenfügt. Wenn der code fertig ist (also er funktioniert serh gut) erkennen die Formel dann die von diesem Code eingefügten Werten aber nicht.
Irgendwas ist in der Code mit der PasteValues falsch.
Kann jemand das erkennen, woran es liegt und wo kann man korrektur machen?
Und kann man in Code auch schreiben, dass Spalte O und J müssen die Zahlen mit 2 Nachkomastellen eigefügt werden. Also nicht 5 sondern z.b 5.03
Wäre sehr nett...
Vielen Dank im Voraus.
Option Explicit
Sub GetAllUpdates()
Dim lLastRow As Long
Dim wkbOld As Workbook
Dim wkbNew As Workbook
Dim intCalculation As Integer
Const Abfrage_Export_DE As String = "R:\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_DE.xlsx"
Const Abfrage_Export_EN As String = "R:\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_EN.xlsx"
Application.ScreenUpdating = False
Application.EnableEvents = False
intCalculation = Application.Calculation
Application.Calculation = xlManual
Set wkbOld = ActiveWorkbook
Application.StatusBar = "delete old data"
With wkbOld.Sheets("Abfrage_Export_GE")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lLastRow > 5 Then .Range("A2:AT" & lLastRow).ClearContents
End With
Application.StatusBar = "check if worksheet in this file does exist"
If WorksheetExists("Abfrage_Export_GE") Then
Sheets("Abfrage_Export_GE").Activate
Else
Application.StatusBar = "create missing worksheet"
Sheets.Add
ActiveSheet.Name = " Abfrage_Export_GE"
Sheets("Abfrage_Export_GE").Activate
End If
Application.StatusBar = "check if workbook " & Abfrage_Export_DE & " does exist, and open it"
If WkbExists(Abfrage_Export_DE) = False Then
If Dir(Abfrage_Export_DE) = "" Then
Else
Workbooks.Open Abfrage_Export_DE, UpdateLinks:=False
End If
Else
Workbooks(Abfrage_Export_DE).Activate
End If
Application.StatusBar = "check if worksheet in external file does exist"
Set wkbNew = ActiveWorkbook
If Not WorksheetExists("Abfrage_Export_DE") Then
Else
Application.StatusBar = "copy data"
wkbNew.Sheets("Abfrage_Export_DE").Activate
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
wkbNew.ActiveSheet.Range("A2:AT" & lLastRow).Copy
Application.StatusBar = "paste data"
wkbOld.Sheets("Abfrage_Export_GE").Range("A2").PasteSpecial xlPasteValues
wkbOld.Sheets("Abfrage_Export_GE").Range("A2").PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
Application.StatusBar = "close file"
wkbNew.Close False
Application.StatusBar = "check if workbook " & Abfrage_Export_EN & " does exist, and open it"
If WkbExists(Abfrage_Export_EN) = False Then
If Dir(Abfrage_Export_EN) = "" Then
Else
Workbooks.Open Abfrage_Export_EN, UpdateLinks:=False
End If
Else
Workbooks(Abfrage_Export_EN).Activate
End If
Application.StatusBar = "check if worksheet in external file does exist"
Set wkbNew = ActiveWorkbook
If Not WorksheetExists("Abfrage_Export_EN") Then
Else
Application.StatusBar = "copy data"
wkbNew.Sheets("Abfrage_Export_EN").Activate
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
wkbNew.ActiveSheet.Range("A2:AT" & lLastRow).Copy
Application.StatusBar = "paste data"
lLastRow = wkbOld.Sheets("Abfrage_Export_GE").Cells(wkbOld.Sheets("Abfrage_Export_GE").Rows.Count, 1).End( _
xlUp).Row + 1
wkbOld.Sheets("Abfrage_Export_GE").Range("A" & lLastRow).PasteSpecial xlPasteValues
wkbOld.Sheets("Abfrage_Export_GE").Range("A" & lLastRow).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
Application.StatusBar = "close file"
wkbNew.Close False
Application.StatusBar = "copy formulas"
With wkbOld.Sheets("Abfrage_Export_GE")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lLastRow > 2 Then
.Range("AW2:CJ2").Copy
.Range("AW3:CJ" & lLastRow).PasteSpecial
Application.CutCopyMode = False
End If
End With
End Sub

Private Function WkbExists(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function


Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean
On Error Resume Next
WorksheetExists = (Sheets(WorksheetName).Name  "")
On Error GoTo 0
End Function

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 11:26:23
peterk
Hallo
Du solltest Application.Calculation wieder einschalten :-)
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 11:29:40
RO
Hey, danke für Antwort.
Könntest du mir bitte sagen, wo und wie?
hab diese Makro nicht selbst geschrieben :((... Hab nicht so viel Ahnung davon :(
Danke dir...
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 11:42:52
peterk
Hallo
Am Ende Deiner Sub GetAllUpdates sollte folgenden stehen

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = intCalculation
End Sub

AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 11:51:55
RO
So hatte ich gleich umgestzt. leider wieder nicht geklappt... Werte werden nicht annerkannt :(((
Option Explicit
Sub GetAllUpdates()
Dim lLastRow As Long
Dim wkbOld As Workbook
Dim wkbNew As Workbook
Dim intCalculation As Integer
Const Abfrage_Export_DE As String = "R:\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_DE.xlsx"
Const Abfrage_Export_EN As String = "R:\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_EN.xlsx"
Application.ScreenUpdating = False
Application.EnableEvents = False
intCalculation = Application.Calculation
Application.Calculation = xlManual
Set wkbOld = ActiveWorkbook
Application.StatusBar = "delete old data"
With wkbOld.Sheets("Abfrage_Export_GE")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lLastRow > 5 Then .Range("A2:AT" & lLastRow).ClearContents
End With
Application.StatusBar = "check if worksheet in this file does exist"
If WorksheetExists("Abfrage_Export_GE") Then
Sheets("Abfrage_Export_GE").Activate
Else
Application.StatusBar = "create missing worksheet"
Sheets.Add
ActiveSheet.Name = " Abfrage_Export_GE"
Sheets("Abfrage_Export_GE").Activate
End If
Application.StatusBar = "check if workbook " & Abfrage_Export_DE & " does exist, and open it"
If WkbExists(Abfrage_Export_DE) = False Then
If Dir(Abfrage_Export_DE) = "" Then
Else
Workbooks.Open Abfrage_Export_DE, UpdateLinks:=False
End If
Else
Workbooks(Abfrage_Export_DE).Activate
End If
Application.StatusBar = "check if worksheet in external file does exist"
Set wkbNew = ActiveWorkbook
If Not WorksheetExists("Abfrage_Export_DE") Then
Else
Application.StatusBar = "copy data"
wkbNew.Sheets("Abfrage_Export_DE").Activate
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
wkbNew.ActiveSheet.Range("A2:AT" & lLastRow).Copy
Application.StatusBar = "paste data"
wkbOld.Sheets("Abfrage_Export_GE").Range("A2").PasteSpecial xlPasteValues
wkbOld.Sheets("Abfrage_Export_GE").Range("A2").PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
Application.StatusBar = "close file"
wkbNew.Close False
Application.StatusBar = "check if workbook " & Abfrage_Export_EN & " does exist, and open it"
If WkbExists(Abfrage_Export_EN) = False Then
If Dir(Abfrage_Export_EN) = "" Then
Else
Workbooks.Open Abfrage_Export_EN, UpdateLinks:=False
End If
Else
Workbooks(Abfrage_Export_EN).Activate
End If
Application.StatusBar = "check if worksheet in external file does exist"
Set wkbNew = ActiveWorkbook
If Not WorksheetExists("Abfrage_Export_EN") Then
Else
Application.StatusBar = "copy data"
wkbNew.Sheets("Abfrage_Export_EN").Activate
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
wkbNew.ActiveSheet.Range("A2:AT" & lLastRow).Copy
Application.StatusBar = "paste data"
lLastRow = wkbOld.Sheets("Abfrage_Export_GE").Cells(wkbOld.Sheets("Abfrage_Export_GE").Rows.Count, 1).End( _
xlUp).Row + 1
wkbOld.Sheets("Abfrage_Export_GE").Range("A" & lLastRow).PasteSpecial xlPasteValues
wkbOld.Sheets("Abfrage_Export_GE").Range("A" & lLastRow).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
Application.StatusBar = "close file"
wkbNew.Close False
Application.StatusBar = "copy formulas"
With wkbOld.Sheets("Abfrage_Export_GE")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lLastRow > 2 Then
.Range("AW2:CJ2").Copy
.Range("AW3:CJ" & lLastRow).PasteSpecial
Application.CutCopyMode = False
End If
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = intCalculation
End Sub

Private Function WkbExists(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function


Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean
On Error Resume Next
WorksheetExists = (Sheets(WorksheetName).Name  "")
On Error GoTo 0
End Function

Anzeige
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 11:52:34
RO
Würde es eine andere Lösung in diese Code geben?
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 12:28:08
peterk
Hallo
Versuch mal (am Ende Deiner Sub) Application.Calculation = xlAutomatic
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 14:01:17
RO
Leider wieder nicht geklappt...
ich finde auch keine andere Code, mit dem man es ersetzen kann...
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 14:39:38
peterk
Hallo
Kannst Du die ersten 5-10 Zeilen Deines Worksheets "Abfrage_Export_GE" in eine eigene Excel Datei kopieren und hochladen? (Bitte alle Spalten)
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 15:10:39
RO
Ja...habe es in xlsb umgewandelt.. und die formel vonn 3 letzen Zeilen gelöscht, weil die datei groß war und konnte man nicht hier hochladen..
Hier die Datei:
https://www.herber.de/bbs/user/133831.xlsb
Danke dir sehr.
Anzeige
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 16:20:12
peterk
Hallo
Danke für die Datei. Wenn ich die Formeln in AT3:CJ6 lösche und sie dann über das Makro einfügen lasse, funktioniert alles einwandfrei.
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 16:24:21
RO
löscht die Makro es nicht vorher? Oder muss man manuell sie löschen?
Und hast was in der Code geändert?
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 16:36:24
peterk
Hallo
Ich hab Sie händisch gelöscht. Das Makro löscht nur die Spalten A:AT
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 16:45:53
RO
kann man das in code schreiben und wie?
Danke dir man.
AW: Formel erkenne die eingefügte Werten nicht
18.12.2019 13:23:22
RO
Heyz Peterk,
Leider wieder nicht geklappt.
Hier die Quelledatei, wie die Werte sind.
ttps://www.herber.de/bbs/user/133846.xlsb
hier die Datei..habe in xlsb gewandelt, wegen Größe der Datei.
Von dieser Datei kommen die Werte. Text in spalte sollte für die Spalte A bis AT der Zieldatei oder A bis AT der Quelledatei (Abfrage_Export_DE.xlsb) druchführen, ohne das man die Quelledatei öffnen kann.
Kann diese Code irgendwie integriert werden für die Spalte A-AT vielleicht...?
Sub LoopTextiSpalten()
Dim WS_Count As Integer
Dim Yexp As Integer
' Tabellenbl?tter auslesen in DB Export
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For Yexp = 1 To WS_Count
Sheets(Yexp).Select
Call TextiSpalten
Next Yexp
End Sub

Sub TextiSpalten()
Spmax = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To Spmax
Columns(i).Select
Selection.TextToColumns Destination:=Cells(1, i), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Next i
Danke für deine Bemühung.

Anzeige
AW: Formel erkenne die eingefügte Werten nicht
17.12.2019 14:29:23
Daniel
Hi
ist so.
wenn du an eine Tabelle unterhalb Werte einfügst, werden Formeln, die sich bisher auf diese Tabelle bezogen haben, nicht angepasst.
wenn das passieren soll, gibt's folgende Möglichkeiten:
a) das makro erstellt die Formeln neu mit den neuen Zellbereichen
b) die Zellbezüge in den Formeln werdne als offene Zellbezüge geschrieben, (A:A statt A1:A999), dann ist das hast du das Problem nicht (funktioniert leider nicht, wenn mit Matrixformeln, SummenProdukt oder Aggregat(14+) ausgegewertet wird
c) stelle um auf "intelligente Tabellen", denn diese erkennen eine Erweiterung des Bereichs durch anfügen und Formeln die sich auf die "intelligente Tabelle" beziehen, werden angepasst
d) füge die Daten nicht einfach am Ende ein, sondern füge zuerst irgenwo zwischen der erste und letzen Zeile des alten Bereichs genügend Leerzeilen ein und kopiere die neuen Daten dort hin.
nur wenn du in einem Bereich Zeilen einfügst, der innerhalb des Bereichs liegt, auf den sich die Formeln beziehen, werden die Formeln automatisch angepasst.
Gruß Daniel
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige