Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Code umdrehen!
#1
Hallo liebe Excelgemeinde,


mit folgenden Code kopieren ich Daten samt Formate von eine Exceldatei zu meiner Datei in der ich diesen Code ausführe:

Code:
Sub ImportDaten()
Dim Dateiname  As String
Dim Datei      As Object
Dim wsQuelle As Workbook
Dim wsZiel1 As Worksheet
Dim wsZiel2 As Worksheet
Dim wsZiel3 As Worksheet
Dim wsZiel4 As Worksheet
Dim wsZiel5 As Worksheet
Dim wsQuelle1 As Worksheet
Dim wsQuelle2 As Worksheet
Dim wsQuelle3 As Worksheet
Dim wsQuelle4 As Worksheet
Dim wsQuelle5 As Worksheet

   Dateiname = Application.GetOpenFilename("Excel Datei, *.*") ' Datei auswählen
    If Dateiname = "Falsch" Then Exit Sub ' bei Abbruch
   Application.ScreenUpdating = False
   Dim var
      var = MsgBox("Sind Sie sicher, dass Sie die Daten importieren möchten? ", vbYesNo)
      If var = 7 Then
         Exit Sub
      Else
   Set Datei = Workbooks.Open(Dateiname) ' Datei öffnen
    Set wsZiel1 = ThisWorkbook.Sheets("produkte")
        wsZiel1.Cells.ClearContents
        wsZiel1.Cells.ClearFormats
    Set wsQuelle1 = Datei.Worksheets("produkte")
    wsQuelle1.Cells.Copy Destination:=ThisWorkbook.Sheets("produkte").Cells
    Set wsZiel2 = ThisWorkbook.Sheets("kunden")
        wsZiel2.Cells.ClearContents
        wsZiel2.Cells.ClearFormats
    Set wsQuelle2 = Datei.Worksheets("kunden")
    wsQuelle2.Cells.Copy Destination:=ThisWorkbook.Sheets("kunden").Cells
    Set wsZiel3 = ThisWorkbook.Sheets("LN")
        wsZiel3.Cells.ClearContents
        wsZiel3.Cells.ClearFormats
    Set wsQuelle3 = Datei.Worksheets("LN")
    wsQuelle3.Cells.Copy Destination:=ThisWorkbook.Sheets("LN").Cells
    Set wsZiel4 = ThisWorkbook.Sheets("zwischen")
        wsZiel4.Cells.ClearContents
        wsZiel4.Cells.ClearFormats
    Set wsQuelle4 = Datei.Worksheets("zwischen")
    wsQuelle4.Cells.Copy Destination:=ThisWorkbook.Sheets("zwischen").Cells
    Set wsZiel5 = ThisWorkbook.Sheets("Attribute")
        wsZiel5.Cells.ClearContents
        wsZiel5.Cells.ClearFormats
    Set wsQuelle5 = Datei.Worksheets("Attribute")
    wsQuelle5.Cells.Copy Destination:=ThisWorkbook.Sheets("Attribute").Cells
    wsQuelle1.Parent.Close SaveChanges:=False
    Set wsQuelle1 = Nothing
    Set wsQuelle2 = Nothing
    Set wsQuelle3 = Nothing
    Set wsQuelle4 = Nothing
    Set wsQuelle5 = Nothing
    Set wsZiel1 = Nothing
    Set wsZiel2 = Nothing
    Set wsZiel3 = Nothing
    Set wsZiel4 = Nothing
    Set wsZiel5 = Nothing
    End If
End Sub

Wie muss ich den Code ändern damit er genau das umgekehrte macht, also aus der Datei in der ich den Code ausführe die Daten in einer anderen Datei die noch nicht existiert und "upload.xls" heißen soll?


Für eure Hilfe danke ich im Voraus
LG
Alexandra
to top
#2
Moin Alexandra,

(22.06.2014, 20:46)cysu11 schrieb: Wie muss ich den Code ändern damit er genau das umgekehrte macht, also aus der Datei in der ich den Code ausführe die Daten in einer anderen Datei die noch nicht existiert und "upload.xls" heißen soll?

Gar nicht, denn eine Datei, die es nicht gibt, kann keinen Namen haben.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
to top
#3
Hallo Günther,

vielen Dank für dein Antwort!

Wie ich schon geschrieben habe, die Datei soll dann "upload.xls" heißen und soll per Code vor dem Kopieren erstellt werden!


Vielen Dank
VG
Alexandra
to top
#4
Hallo Alexandra,

Zitat:Wie ich schon geschrieben habe, die Datei soll dann "upload.xls" heißen und soll per Code vor dem Kopieren erstellt werden!

Bist Du sicher, daß Du weißt, was Du erreichen will?

Wenn ich eine neue Datei erstelle, dann ist das Teil leer.
Und wenn ich dann aus dieser Datei etwas kopieren will, dann ... richtig, dann kann ich die Zelleninhalte auch gleich in der Zieldatei löschen.
Den Umweg über das Kopieren, den kann ich mir glatt sparen.

Es sei denn, ich habe was falsch verstanden. In diesem Fall aber eher wohl nicht.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

?mage
to top
#5
Hallo Peter,


anscheinend habe ich mich etwas unverständlich ausgedrückt!

Hier nochmals einfacher Smile

DateiA ist die Quelldatei(aus dieser Datei wird der Code ausgeführt)
DateiB ist die Zieldatei (diese existiert noch nicht und soll durch den Code erstellt werden)

Sobald die DateiB erstellt ist, soll aus DateiA alle gefüllten Cells in den im Code beschrieben Blätter kopiert werden und in DateiB eingefügt werden! Achtung der o.g. Code macht momentan fast das Gegenteil, nur das aus DateiB die bereits existiert nach DateiA kopiert!!!!


Ich hoffe das ist jetzt etwas verständlicher! Smile

Vielen Dank
VG
Alexandra
to top
#6
Hallo Alexandra,

vielleicht einfach so:

Code:
Sub Exportieren()
  ThisWorkbook.SaveCopyAs "upload.xls"
End Sub

Gruß Uwe
to top
#7
Hallo Uwe,


vielen Dank für dein Vorschlag, jedoch will ich nicht die ganze Mappe kopieren, sondern wirklich nur wie beschrieben!


Vielen Dank
VG
Alexandra
to top
#8
Hallo Alexandra,

dann vielleicht so:

Code:
Sub ExportDaten()
  If MsgBox("Sind Sie sicher, dass Sie die Daten exportieren möchten? ", vbYesNo) = vbYes Then
    Application.ScreenUpdating = False
    ThisWorkbook.Sheets("produkte").Copy
    ThisWorkbook.Sheets("kunden").Copy ActiveWorkbook
    ThisWorkbook.Sheets("LN").Copy ActiveWorkbook
    ThisWorkbook.Sheets("zwischen").Copy ActiveWorkbook
    ThisWorkbook.Sheets("Attribute").Copy ActiveWorkbook
    ActiveWorkbook.SaveAs "upload.xls"
    Application.ScreenUpdating = True
  End If
End Sub

Gruß Uwe
to top
#9
Hallo Alexandra,

Zitat:Sobald die DateiB erstellt ist, soll aus DateiA alle gefüllten Cells in den im Code beschrieben Blätter kopiert werden und in DateiB eingefügt werden!

Es mag ja sein, daß ich zu dusselig bin, zu begreifen was Du tun willst.
Für mich ist das aber doch nichts anderes, als die bestehende Datei unter einem anderen Namen zu speichern und (vielleicht noch) die Tabellenblätter umzubenennen.

@ Uwe,
freut mich, in Dir einen Leidensgefährten gefunden zu haben 05
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

?mage
to top
#10
Hi Peter,

vielleicht gibt es noch mehr Worksheets, die nicht in die neue Datei sollen?
Und/oder die neue Datei soll VBA-frei sein?

Gruß Uwe
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Werte in Diagram "umdrehen" Apollion77 11 151 26.10.2016, 16:13
Letzter Beitrag: snb
  HEX Code umdrehen hubi1411 6 223 14.09.2016, 20:45
Letzter Beitrag: Castor
  Code vorübergehend per Code ändern! cysu11 9 1.681 11.12.2014, 19:06
Letzter Beitrag: cysu11

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste