Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
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
Fehler in VBA Code
17.04.2014 21:37:53
Andy
Hallo,
wer kann Helfen?
Dieser VBA Code ist in einer Arbeitsmappe hinterlegt und holt sich Daten aus einer anderen Arbeitsmappe.
Hier ist allerdings eine Fehler im unteren Teil der so nicht funktioniert.
Kann von euch jemand darüberschauen und den Fehler erkennen oder beheben.
Vielen Dank im voraus
Sub Messdatei_oeffnen(KW As String)
Dim i As Long
Dim Zeilenzahl As Single
Dim Zeilenzahl_Chargen As Single
Dim Step1 As Single
Dim Step2 As Single
Dim Step3 As Single
Dim wsSource As Worksheet
Dim wsTarget0 As Worksheet
Dim wsTarget1 As Worksheet
Dim wsTarget2 As Worksheet
Set wsTarget0 = ActiveWorkbook.Worksheets("VBA_Urdaten0")
Set wsTarget1 = ActiveWorkbook.Worksheets("VBA_Urdaten")
Set wsTarget2 = ActiveWorkbook.Worksheets("VBA_aufbereitete_Meßdaten")
'VBA_Urdaten auf Ursprung "VBA_Urdaten0" zurücksetzen
wsTarget0.Range("$A$1:$EP$100").Copy
'Ursprung "VBA_Urdaten0" einfügen und alle Chargen löschen
wsTarget1.Range("A2").PasteSpecial xlPasteAll
'?Zeilenhöhe 2 auf 30 setzen
Application.ScreenUpdating = False
Workbooks.Open "C:\Users\Andy\Documents\Arbeitsmappe.xlsm"
Set wsSource = Sheets("7±0,005")
wsSource.Unprotect Password:="läppen"
'nach KW filtern
wsSource.Range("$A$3:$EP$2300").AutoFilter Field:=1, Criteria1:=Array(KW), Operator:= _
xlFilterValues
'nach Art.-Nr. filtern -> für 60, 100, 160, 250, 400, 600 bar sortieren
wsSource.Range("$A$3:$EP$2300").AutoFilter Field:=4, Criteria1:=Array("14056130", "14056133" _
_
_
_
, "14056135", "14056136", "14074496", "14056147"), Operator:=xlFilterValues
'gefilterte Daten kopieren
wsSource.AutoFilter.Range.Copy
'gefilterte Daten einfügen
wsTarget1.Range("A4").PasteSpecial xlPasteAll
'zum Schliessen der wsSource
'?Weshalb ist wsSource nocht aktiv, da in wsTarget1 eingefügt?
ActiveWindow.Close
'?Fenster "Speichern" und "Datenmenge zur Verfügung stellen" auch per Makro schließen?
'    Call Messwerte_Target1_aufbereiten(wsTarget1)
'    Call Messwerte_Target2_aufbereiten(wsTarget1, wsTarget2)
'End Sub

'
'

Sub Messwerte_Target1_aufbereiten(wsTarget1)
'    Dim Zeilenzahl As Single
'    Dim Zeilenzahl1 As Single
wsTarget1.Columns("P:Q").Delete Shift:=xlToLeft
wsTarget1.Columns("Q:R").Delete Shift:=xlToLeft
wsTarget1.Columns("R:S").Delete Shift:=xlToLeft
wsTarget1.Columns("S:T").Delete Shift:=xlToLeft
wsTarget1.Columns("T:U").Delete Shift:=xlToLeft
wsTarget1.Columns("U:V").Delete Shift:=xlToLeft
wsTarget1.Columns("V:W").Delete Shift:=xlToLeft
wsTarget1.Columns("W:X").Delete Shift:=xlToLeft
wsTarget1.Columns("X:Y").Delete Shift:=xlToLeft
wsTarget1.Columns("Y:Z").Delete Shift:=xlToLeft
wsTarget1.Columns("Z:AA").Delete Shift:=xlToLeft
wsTarget1.Columns("AA:AB").Delete Shift:=xlToLeft
wsTarget1.Columns("AB:AC").Delete Shift:=xlToLeft
wsTarget1.Columns("AC:AD").Delete Shift:=xlToLeft
wsTarget1.Columns("AD:AE").Delete Shift:=xlToLeft
wsTarget1.Columns("AE:AF").Delete Shift:=xlToLeft
wsTarget1.Columns("AF:AG").Delete Shift:=xlToLeft
wsTarget1.Columns("AG:AH").Delete Shift:=xlToLeft
wsTarget1.Columns("AH:AI").Delete Shift:=xlToLeft
wsTarget1.Columns("AI:AJ").Delete Shift:=xlToLeft
wsTarget1.Columns("AJ:AK").Delete Shift:=xlToLeft
wsTarget1.Columns("AK:AL").Delete Shift:=xlToLeft
wsTarget1.Columns("AL:AM").Delete Shift:=xlToLeft
wsTarget1.Columns("AM:AN").Delete Shift:=xlToLeft
wsTarget1.Columns("AN:AO").Delete Shift:=xlToLeft
wsTarget1.Columns("AO:AP").Delete Shift:=xlToLeft
wsTarget1.Columns("AP:AQ").Delete Shift:=xlToLeft
wsTarget1.Columns("AQ:AR").Delete Shift:=xlToLeft
wsTarget1.Columns("AR:AS").Delete Shift:=xlToLeft
wsTarget1.Columns("AS:AT").Delete Shift:=xlToLeft
wsTarget1.Columns("AT:AU").Delete Shift:=xlToLeft
wsTarget1.Columns("AU:AV").Delete Shift:=xlToLeft
wsTarget1.Columns("AV:AW").Delete Shift:=xlToLeft
wsTarget1.Columns("AW:AX").Delete Shift:=xlToLeft
wsTarget1.Columns("AX:AY").Delete Shift:=xlToLeft
wsTarget1.Columns("AY:AZ").Delete Shift:=xlToLeft
'?Wieviele Zeilen mit Messwerten gibt es?
'Range("A5").Select
Zeilenzahl = Selection.CurrentRegion.Rows.Count
Zeilenzahl_Chargen = Zeilenzahl - 4
'    wsTarget1.Cells(30, "A") = Zeilenzahl
wsTarget1.Cells(30, "B") = "Zeilenzahl: " & Zeilenzahl
wsTarget1.Cells(30, "C") = "Zeilenzahl_Chargen: " & Zeilenzahl_Chargen
'   'zählt inkl. Leerzeilen
'    Zeilenzahl1 = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'    wsTarget1.Cells(31, "A") = Zeilenzahl1
'    wsTarget1.Cells(31, "B") = "Zeilenzahl1: " & Zeilenzahl1
'?Zelle A2 auswählen
'?Autosize Breite aller Spalten?
'End Sub

'
'

Sub Messwerte_Target2_aufbereiten(wsTarget1, wsTarget2)
'Inhalt komplett gelöscht
wsTarget2.UsedRange.ClearContents
'Tabellenkopf definieren
wsTarget1.Range("N3").Copy
wsTarget2.Cells(1, "A").PasteSpecial
wsTarget1.Cells(2, "N").Copy
wsTarget2.Cells(1, "B").PasteSpecial
'kopieren des Tabellenkopfes aus Target1
wsTarget1.Range("A4:N4").Copy
'einfügen des Tabellenkopfes in Target2
wsTarget2.Range("C1").PasteSpecial
'?Layout Tabellenkopf machen?
'Messwerte aufbereiten
'Schleife wird bei Zeilenzahl_Charge = 0 sofort beendet
Do
'Zeilenzahl_Chargen = Zeilenzahl_Chargen - 1
'Cells(Zeilenzahl_Chargen + 40, "B").Value = Zeilenzahl_Chargen
Step3 = 5
'kopieren der Zeile "Aufnehmer# und GTF-Position" aus Target1
wsTarget1.Range("O3:AX3").Copy
'transponieren und einfügen der Zeile "Aufnehmer# und GTF-Position" in Target2
wsTarget2.Cells(2 + Step2, "A").PasteSpecial Transpose:=True
'kopieren der Messwerte aus Target1
wsTarget1.Range("O5:AX5").Copy
'transponieren und einfügen der Messwerte in Target2
wsTarget2.Cells(2, "B").PasteSpecial Transpose:=True
'kopieren der Kopfdaten aus Target1 und einfügen der Kopfdaten in Target2
wsTarget1.Range("A5:N5").Copy
'wsTarget1.Range(Cells(5 + Step1, 1), Cells(5 + Step1, 14)).Copy Destination:=wsTarget2. _
_
_
_
Range(Cells(2 + Step2, "C"), Cells(2 + Step2, "P"))
'wsTarget1.Range(Cells(5, 1), Cells(5, 14)).Copy
wsTarget2.Range("C2:C37").PasteSpecial
Step1 = Step1 + 1
Step2 = Step2 + 36
'Step3 = Step3 + 1
'Cells(Step2 + 60, "D").Value = Step1
'Loop Until Zeilenzahl_Chargen = 0
Loop Until Step1 = Zeilenzahl_Chargen
Application.ScreenUpdating = True
wsTarget2.Select
'    'kopieren der Zeile "Aufnehmer# und GTF-Position" aus Target1
'    wsTarget1.Range("O3:AX3").Copy
'    'transponieren und einfügen der Zeile "Aufnehmer# und GTF-Position" in Target2
'    wsTarget2.Range("A2" + Step).PasteSpecial Transpose:=True
'    'kopieren der Messwerte aus Target1
'    wsTarget1.Range("O5:AX5").Copy
'    'transponieren und einfügen der Messwerte in Target2
'    wsTarget2.Range("B2" + Step).PasteSpecial Transpose:=True
'    'kopieren der Kopfdaten in Target1
'        '?Wie bekomme ich das zum Laufen?
'        'With ThisWorkbook.wsTarget1
'        '    .Range("A5:N5").Copy Destination:=wsTarget2.Range("C2:P" & .Range("A65536").End(   _
_
_
_
xlUp).Row)
'        'End With
'    'kopieren der Kopfdaten aus Target1
'    wsTarget1.Range("A5:N5").Copy
'    'einfügen der Kopfdaten in Target2
'    wsTarget2.Range("C2:P37").PasteSpecial
'?Autosize Breite aller Spalten?
'?In einzelne Sub's auftrennen?
'?Wie Abschnitssweise testen?
'wie Befehle als Auswahl -> Autovervollständigen?
End Sub

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in VBA Code
17.04.2014 22:07:32
Oberschlumpf
Hi Andy
Warum zeigst du uns denn nicht eine Bsp-Datei mit genau dem Code und baust in die Bsp-Datei alles andere ein, Bsp-Daten usw, was erforderlicht ist, um deine Frage zu verstehen?
Ciao
Thorsten

AW: Fehler in VBA Code
17.04.2014 22:25:19
Andy
Hallo,
leider kann ich die Datei aus vertraulichen Gründen nicht hochladen werde aber versuchen eine Beispieldatei zusammenzustellen.
Komme aber heute nicht mehr dazu.
Vielen Dank nochmal.

AW: Fehler in VBA Code
18.04.2014 09:03:50
Tino
Hallo,
nur geraden.
Versuch mal und mach aus der Zeile
ActiveWindow.Close
diese (False schließen ohne zu speichern, True speichern und schließen)
wsSource.Parent.Close False
Gruß Tino

Anzeige
AW: Fehler in VBA Code
21.04.2014 14:44:07
Andy
Hallo,
habe jetzt mal die zwei Arbeitsmappen hochgeladen.
Aus der Mappe1.xlsm sollen Daten in Mappe2.xlsm eingefügt und aufbereitet werden.
Der Code ist in Mappe2.xlsm dabei bekomme ich einige Sachen nicht hin die auskommentiert sind.
Währe Super wenn von jemand eine Lösung für mich hat.
Danke
https://www.herber.de/bbs/user/90275.xlsm
https://www.herber.de/bbs/user/90276.xlsm

AW: Fehler in VBA Code
21.04.2014 15:37:29
Tino
Hallo,
vielleicht ist es einfacher anhand der beiden Dateien zu erklären was alles gemacht werden soll.
Dann ist es evtl. leichter was Neues zu erstellen.
Ich lass mal noch offen!
Gruß Tino

Anzeige
AW: Fehler in VBA Code
21.04.2014 18:18:19
Andy
Hallo,
-also Daten die aus der Mappe1.xlsm sollen über die KW Inputbox eingabe in dei Mappe2.xlsm gefiltrt und dann in Mappe2.xlsm eingefügt werden.
-die Mappe1 soll nach einfügen geschlossen werden.
-Messwert löschen und neue Messwerte in Target 1 schreiben VBA_Urdaten wieviel Messwerte?
-optimale Spaltenbreite aller Spalten und Zeilen
-dann in Tabelle VBA_aufbereitete_Meßdaten Tabellenkopf von VBA_Urdaten N3 in VBA_aufbereitete_Meßdaten A1 und N2 in B1 einfügen.
-die Daten aus Mappe1.xlsm in Spalte A von Mappe2.xlsm eintragen, die Position und die Werte von Zeilen in Spalte B.
-die Position steht ab der Spalte O3 un soll in Spalte A transporniert werden.
-die Meßdaten sollen da jede dritte Zeile ein Wert steht ab der O4 zu den Positionen angeordnet sein.
Ich hoffe das einen kleinen überblick schaffen konnte.
Vielen Dank nochmal

Anzeige
AW: Fehler in VBA Code
22.04.2014 12:42:57
Tino
Hallo,
habe das Lesen und Filter aus Mappe1.xlsm eingebaut.
Den Teil ab "die Daten aus Mappe1.xlsm in Spalte A von Mappe2.xlsm eintragen..." habe ich nicht verstanden.
https://www.herber.de/bbs/user/90294.zip
Gruß Tino

AW: Fehler in VBA Code
22.04.2014 13:27:43
Andy
Hallo,
vielen Dank für deine Mühe,so währe ich nicht darauf gekommen.
-zu der Mappe2.xlsm habe ich dir eine Textdatei eingefügt.
Die Messdaten mit den Überschriften
A1S1A 7,0017817 22.04.2014 Max Mustermann 2 14056136 250 13.12.13-K14-R7 S752 DRY40 7000 (1.4534) D7/4 846 30 Außen GUT
A1S2A 7,00086 17 22.04.2014 Max Mustermann 2 14056136 250 13.12.13-K14-R7 S752 DRY40 7000 (1.4534) D7/4 846 30 Außen GUT
in VBA_aufbereiteten_Meßdaten Transpornieren wie im Beispiel und die Datensätze dazu kopieren
kann mann die Formatierung der Messdaten beibehalten.
Das währe super wenn man das noch hinbekommen könnte.
Vielen Dank nochmals.
https://www.herber.de/bbs/user/90295.xlsm

Anzeige
AW: Fehler in VBA Code
22.04.2014 14:38:27
Andy
Hallo Tino,
super so wollte ich es auch haben.
Nur noch eine Kleinigkeit.
In der Mappe1.xlsm sind Formate für die Spalte N und für die Messwerte gelber und roter Hintergrund,die hätte ich gerne in der Mappe2.xlsm VBA_Urdaten und VBA_aufbereitete_Meßdaten mit übernommen.
-dann habe ich noch eine Fehlermeldung bei der Imputbox wenn keine Eingabe erfolgt "Abbrechen" bekomme ich einen Debuggenfehler, kann mann den noch abfangen wenn keine Eingabe erfolgt.
Danke nochmals
Andy

Anzeige
AW: Fehler in VBA Code
22.04.2014 14:38:43
Andy
Hallo Tino,
super so wollte ich es auch haben.
Nur noch eine Kleinigkeit.
In der Mappe1.xlsm sind Formate für die Spalte N und für die Messwerte gelber und roter Hintergrund,die hätte ich gerne in der Mappe2.xlsm VBA_Urdaten und VBA_aufbereitete_Meßdaten mit übernommen.
-dann habe ich noch eine Fehlermeldung bei der Imputbox wenn keine Eingabe erfolgt "Abbrechen" bekomme ich einen Debuggenfehler, kann mann den noch abfangen wenn keine Eingabe erfolgt.
Danke nochmals
Andy

AW: Fehler in VBA Code
22.04.2014 16:07:44
Tino
Hallo,
das Format kann man mit dieser Art von Abfrage nicht auslesen.
Kann man dieses anhand irgendwelcher Kriterien bestimmen?
Den Fehler hatte ich in der letzten Version rausgemacht!
Gruß Tino

Anzeige
AW: Fehler in VBA Code
22.04.2014 18:56:38
Andy
Hallo Tino,
bei den Messwerte habe ich unterschiedlich Dezimalstellen,die sollten für die Spalte 0,00000 sein, und in der Spalte Ergebnis soll jeweils für SCHLECHT Interior.Color = RGB(255, 0, 0) und für GUT Interior.Color = RGB(146, 208, 80)ausgegeben werden.
Ich hoffe, das das erst mal wäre.
Vielen Dank
Andy

Pfad anpassen
22.04.2014 23:15:19
Andy
Holle Timo,
wie pass ich den Pfad an?
'Pfad anpassen wo die Mappe1.xlsm liegt.
'hier wo auch diese Mappe liegt
sPath = ThisWorkbook.Path & IIf(Right$(ThisWorkbook.Path, 1) = "C:\Users\master\Documents\Mappe1.xlsm")
sPath = sPath & "Mappe1.xlsm"
funktioniert so nicht wie ich es gemacht habe.
Danke nochmal
Andy

Anzeige
AW: Pfad anpassen
22.04.2014 23:45:33
Tino
Hallo,
einfach nur
sPath = "C:\Users\master\Documents\Mappe1.xlsm"
Gruß Tino

AW: Pfad anpassen
23.04.2014 13:06:47
Andy
Hallo Tino,
habe noch eine bitte an dich, wie bekomme ich das in deinen Code hinein.
Die Daten sollen nach diesen Kriterien gefiltert von Mappe1.xlsm importiert werden.
wsSource.Range("$A$3:$EP$2300").AutoFilter Field:=4, Criteria1:=Array("14056130", "14056133", "14056135", "14056136", "14074496", "14056147"), Operator:=xlFilterValues
Gruß und vielen Dank nochmal
Any

Filter anpassen
23.04.2014 13:07:57
Andy
Hallo Tino,
habe noch eine bitte an dich, wie bekomme ich das in deinen Code hinein.
Die Daten sollen nach diesen Kriterien gefiltert von Mappe1.xlsm importiert werden.
wsSource.Range("$A$3:$EP$2300").AutoFilter Field:=4, Criteria1:=Array("14056130", "14056133", "14056135", "14056136", "14074496", "14056147"), Operator:=xlFilterValues
Gruß und vielen Dank nochmal
Any

Anzeige
Danke für deine umfangreiche Hilfe
23.04.2014 14:41:00
Andy
Hallo Timo,
vielen Dank,
das beste Forum hier!!
Welche Bücher für VBA-Programmierung empfiehlst du.
ich versuche zwar kleinere Sachen hinzubekommen, aber so umfangreiche Code's bekomme ich nicht hin.

nix Bücher...
23.04.2014 14:55:16
Tino
Hallo,
meiner Meinung nach helfen Bücher wenig.
Besser mit kleinen Sachen Anfangen um ein Grundverständnis zu erlangen.
(kleine Schleifen, Tabellen und Zellbezüge usw.)
Später diese Kenntnisse weiter ausbauen in dem man einfach mal ausprobiert und dabei lernt.
Gruß Tino

Anzeige
AW: nix Bücher...
23.04.2014 19:14:53
Andy
Hallo Timo,
es hat sich leider noch ein Problem bei den Orginaldateien entwickelt.
beim versuch die Daten einzulesen habe ich eine Fehlermeldung bekommen.
4 (Microsoftj[ODBC-Treiber für Excel]Allgemeiner Fehler Der
Registrierungsschlücsel Temporary (volatile) Ace DSN for process O
Thread Oxl7lc DBC Oxi.b8b778 Excel
kann nicht geöffnet werden.
die Treiber sind in beiden Dateien über Verweis aktiviert.
kannst du da nochmal drüber schauen
Danke
Gruß Andy

Driver Fehler
23.04.2014 19:15:54
Andy
Hallo Timo,
es hat sich leider noch ein Problem bei den Orginaldateien entwickelt.
beim versuch die Daten einzulesen habe ich eine Fehlermeldung bekommen.
4 (Microsoftj[ODBC-Treiber für Excel]Allgemeiner Fehler Der
Registrierungsschlücsel Temporary (volatile) Ace DSN for process O
Thread Oxl7lc DBC Oxi.b8b778 Excel
kann nicht geöffnet werden.
die Treiber sind in beiden Dateien über Verweis aktiviert.
kannst du da nochmal drüber schauen
Danke
Gruß Andy

AW: Driver Fehler
24.04.2014 08:15:36
Tino
Hallo,
weis ich jetzt auch nicht, hilft nur die Dateien in abgespeckter Version hochladen.
Gruß Tino

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige