Office: Daten kopieren

Helfe beim Thema Daten kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hey, folgendes Problem hat sich gestellt: Ich möchte bestimmte Daten aus bestimmten Zellen eines Tabellenblattes entnehmen und diese Daten dann... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Amakido, 27. Mai 2006.

  1. Amakido Erfahrener User

    Daten kopieren


    Hey,

    folgendes Problem hat sich gestellt:

    Ich möchte bestimmte Daten aus bestimmten Zellen eines Tabellenblattes entnehmen und diese Daten dann untereinander, in ein anderes Tabellenblatt schreiben, das als „Datenträger“ dienen soll.

    Hier ein Bild von wo die Daten kommen (link),


    Daten kopieren [​IMG]
    Maske


    Auf dem Bild sieht man dass das Tabellenblatt einen gefixten Bereich hat (türkis), welcher gleichzeitig der Options-Bereich ist. Es wurde „Neue Daten speichern“ gewählt und ein Datenname „MR_5“ vergeben (rot eingekreist). Wenn der Benutzer jetzt auf den „ok“ Button klickt, sollen nur die vom Benutzer eingegebenen Daten, und nicht die Formeln/Formatierungen/etc mit gespeichert werden, da sie das Projekt unnötig aufblähen.
    Alle vom Benutzer eingegebenen Daten werden untereinander aufgelistet (in einer Spalte) z.B: erst die Notizen, darunter Alptraum, und wiederum darunter Hölle, … (blau eingekreist) somit könnte man die Daten speichern und später bei Bedarf wieder in das Tabellenblatt „rückübertragen“, wodurch eine Auswertung der Daten durch die Formeln im Tabellenblatt geschehen würde.


    Daten kopieren [​IMG]
    Daten


    Mir ist bekannt wie ich Daten von einer Zelle über ein Makro in einen festen Bereich übertrage, wenn die Zielzellen immer dieselben Koordinaten besitzen. Leider war es mir unmöglich, eine Datensammlung durchzuführen, und diese dann hinter den letzten Dateneintrag im Datenblatt zu portieren. (die gesammelten Daten müssen neu angeordnet werden) dh. ein Abbild ist nicht möglich. Siehe Bild (rot eingekreist)


    Gruß Amakido
     
    Amakido, 27. Mai 2006
    #1
  2. Michael
    Michael Administrator
    Hallo Amakido,

    ja das ist so eine Sache mit dem nach dem letzten Eintrag anfügen. Hier mal ein Tipp dazu. Es gibt im Makro die Möglichkeit das zu erzeugen was du im Excel mit der Ende+rechts Taste kannst. Bis zu letzten Eintrag springen:

    Selection.End(xlToRight).Select ---> markiert den letzten Eintrag
    Selection.End(xlToRight).Offset(0, 1).Select ---> markiert den letzten Eintrag und geht von dort eine Spalte nach rechts.

    Gruß
    Michael
     
    Michael, 27. Mai 2006
    #2
  3. Amakido Erfahrener User
    hier mal ein Versuch von mir...

    Code:
    Private Sub Test_Click()
    
        Dim Speicher As Variant
        Dim x As Long
        Dim T1, T2, T3, Eintrag As Range
    
        Set T1 = Range("D124")
        Set T2 = Range("D118:D121")
        Set T3 = Range("H118:H121")
        
        Speicher = Array(T1, T2, T3)
        
        ActiveWorkbook.Sheets("Daten").Activate
        
        Set Eintrag = ActiveWorkbook.Sheets("Daten").Range("E1").Selection.End(xlToRight).Offset(1, 1).Select
    
        For x = 1 To Speicher.Cells.Count
                    Ziel.Cells(i) = Speicher(x)
                    Exit For
        Next
    
    End Sub
    
    Es werden Daten aus 3 Bereichen des Tabellenblattes gesammelt T1,T2,T3 , diese sollen dann untereinander in einem Array angeordnet werden "Array(T1, T2, T3)".
    Da sich jetzt alle Daten untereinander in dem Array befinden, soll dieses Array vom ersten Eintrag bis zum letzten nacheinander und untereinander in das "DatenBlatt" nach dem letzten Eintrag, reingeschrieben werden.

    Da ich mich leider noch nie mit Basic beschäftigt habe ist kann ich nur eine wage Vermutung anstellen wie das aussehen müsste und hoffen das es funktioniert.... was mache ich hier falsch?

    Gruß Amakido
     
    Amakido, 27. Mai 2006
    #3
  4. freaky
    freaky Erfahrener User

    Daten kopieren

    Hi,

    ... falsch recht viel....!

    Was willst du damit machen:
    Speicher = Array(T1, T2, T3) ???

    Wenn Du den Inhalt der Bereiche in das Array schreiben willst geht das so nicht. Das Array wird leer sein. Und diese Anweisung erzeugt ein dreidimensionales Array- das brauchst Du wohl nicht. Zumindest so wie ich es verstehe.

    Und was willst du mit der Schleife machen? Wo Du doch gleich wieder ein "Exit For" hast und dei Schelife gleich wieder verlässt...

    Was sit das Objekt "Ziel"????

    Und diese Zeile geht so mit Sicherheit nicht:
    Set Eintrag = ActiveWorkbook.Sheets("Daten").Range("E1").Selection.End(xlToRight).Offset(1, 1).Select

    "Range"-Eigenschaft und "Selection"-Funktion in einem Objekt geht nicht....

    Zur Vorgehensweise:
    1. Du müsstest die Zellinhalte nacheinander in das Array einlesen.
    2. Dazu brauchst Du ein eindimensionales Array.
    3. Dann zur entsprechenden Tabelle wechseln
    4. Die letzte Spalte finden
    5. Dann alle Werte des Array in die Spalte eintragen

    Code muss ich aber auch noch genau testen....Zumal ich nicht hundertprozent verstanden habe, was Du da machen willst....das liegt aber an der Uhrzeit.
     
    freaky, 28. Mai 2006
    #4
  5. Amakido Erfahrener User
    danke erst mal ..

    ich möchte aus dem ersten Tabellenblatt bestimmte Zell-inhalte rauskopieren, sie dann untereinander anordnen um sie dann in dieser Form in einer einzigen Spalte (untereinander) abzuspeichern, sozusagen als Speicher. Da ich weiß ab welche Zeile welche Daten zu finden sind, kann ich sie später wieder abrufen.

    Gruß Amakido

    ps: ich hab echt kein plan von Basic ... du musst verzeihen

    EDIT

    Beispiel.xls

    In diesem Beispiel habe ich 2 Tabellenblätter. aus dem Linken Tabellenblatt werdne die Daten heraus genommen und dann in das zweite Tabellenblatt namens "Daten" gespeichert. In Zeile "C" habe ich ein paar beispieldaten eingetragen. In zeile A steht eine Beschreibung der Daten und in Zeile B die Zellen von denen man die Daten bekommt. Ich hoffe es reicht aus.

    Gruß Amakido
     
    Amakido, 28. Mai 2006
    #5
  6. Amakido Erfahrener User
    Hier habe ich mal ein einfaches Beispiel, das Mir daten aus dem aktuellen Blatt, aus den angegebenen Koordinaten in das Blatt mit den angegebenen Zielkoordinaten kopiert.

    Code:
    Private Sub CommandButton1_Click()
    Dim Blattname
    Dim i As Long, x As Long
    Dim SP1, SP2 As Range, Z1, Z2 As Range
    
    Set SP1 = Range("O118:O121")
    Set SP2 = Range("P118:P121")
    
    Blattname = Range("D124")
        
        ActiveWorkbook.Sheets(Blattname).Activate
        Set Z1 = ActiveWorkbook.Sheets(Blattname).Range("AB1:AB4")
        Set Z2 = ActiveWorkbook.Sheets(Blattname).Range("AB5:AB8")
         
        For x = 1 To SP1.Cells.Count
            For i = 1 To Z1.Cells.Count
                If x = i Then
                    Z1.Cells(i) = SP1(x)
                    Exit For
                End If
            Next
        Next
        For x = 1 To SP2.Cells.Count
            For i = 1 To Z2.Cells.Count
                If x = i Then
                    Z2.Cells(i) = SP2(x)
                    Exit For
                End If
            Next
        Next
    
    End Sub
    
    Problem ist jetzt nur das ich nicht weiß wie ich die Funktion von Michael

    Code:
    Selection.End(xlToRight).Offset(0, 1).Select 
    dort einbauen soll

    Daten kopieren [​IMG]
    Zellen in denen "Daten" Steht sind belegt, die Zellen mit "Ziel" sind leer und sollen gefüllt werden


    wäre es möglich ein Beispiel zu geben?

    Weiterhin habe ich 2 einzelne Schleifen verwendet, geht eine zusammenlegung zu einer Schleife ? etwa so?


    Code:
       .......
    
        For x = 1 To SP1.Cells.Count
            For i = 1 To Z1.Cells.Count
                If x = i Then
                    Z1.Cells(i) = SP1(x)
                    Z2.Cells(i) = SP2(x)
                    Exit For
                End If
            Next
        Next
    
        .......
    
    
     
    Amakido, 31. Mai 2006
    #6
  7. freaky
    freaky Erfahrener User
    Hi,

    Sorry - das Thema ist mir doch irgendwie unter gegangen....

    Wenn nicht jemand anders sich drum kümmert - werde ich es heute späten Abend nochmal anschauen.... ;-)
     
    freaky, 31. Mai 2006
    #7
  8. Amakido Erfahrener User

    Daten kopieren

    danke für deine Hilfe..

    hätte gleich noch 2 kleine Fragen ...

    (1)wie kann ich ein Array mit dem Inhalt aus verschiedenen Zellen "füllen" ?

    (2)kann man den quelltext kommentieren?

    (3)wie kopiert man nicht den Inhalt sondern die Formeln einer Zelle?
    und

    (4)wenn das ganze mit dem (trage nach dem letzten Eintrag ein) nicht funktioniert, wäre es möglich zu sagen, verschiebe alle Einträge die schon gemacht sind eins nach rechts( also Spalte A > Spalte B ; Spalte B > C ; C > ...) und füge die daten in Spalte A ein? dann bräuchte man ja nicht den letzten Eintrag suchen.
     
    Amakido, 1. Juni 2006
    #8
  9. Amakido Erfahrener User
    sorry für den Doppelpost

    Hey,

    da ich nicht herausgefunden habe wie ich mit:

    Code:
     Selection.End(xlToRight).Offset(0, 1).Select
    umgehe, habe ich meine eigene Methode entwickelt um herauszufinden welche Spalte die Zielspalte ist. Was habe ich gemacht? :

    In A3 habe ich die Anzahl der „nicht leeren“ Zellen vom ZielTabellenblatt =ANZAHL2(1:1)+1 bestimmen lassen und 1 addiert, da ich die darauf folgende Spalte benötige. Die Spalte kann sich entweder aus nur 1 Buchstabe oder aus 2 Buchstaben zusammensetzten. Zudem wird, wenn 2 Buchstaben benötigt werden, immer der erste Buchstabe um eine Position im Alphabet erhöht, wenn der zweite Buchstabe „Z“ passiert. Daraus folgt, dass die Anzahl der „nicht leeren“ Zellen in A3 durch 26 dividiert werden muss, um herauszufinden wie oft „Z“ passiert wurde. Im Beispiel (bild) GANZZAHL(32/26) = 1. Sodann wissen wir dass das Alphabet 1 mal komplett durchlaufen wurde. Mit der 1 gehen wir dann in eine SVERWEIS() – Funktion und lassen in der rechten Matrix nach dem passenden Buchstabe für 1 Suchen (3teSpalte) --> A = Ergebnis.
    Da wir nun wissen dass der erste Buchstabe ein „A“ sein muss, müssen wir noch herausfinden welcher der 2te Buchstabe ist. Das Verfahren ist ähnlich mit dem kleinen Unterschied, das wir dieses Mal mit dem Rest aus 32/26 rechnen müssen: (32/26)-A5 wobei A5 der Ganzzahlanteil von 32/26 aus der ersten Rechnung ist. Jetzt multiplizieren wir noch den Rest mit 26: ((32/26)-A5)*26 und wir bekommen eine 6 als Ergebnis. Mit dieser 6 gehen wir dann wieder in die Matrix und das Ergebnis lautet --> F = zweite Buchstabe.
    Jetzt verketten wir die beiden gefundenen Buchstaben und haben unsere Zieladresse: „AF“


    Daten kopieren [​IMG]


    Notiz: es gibt 2 kleine Schönheitseingriffe, wenn die Anzahl der Nichtleeren Zellen unter 26 ist, wird der Ganzzahlanteil „NULL“ und muss als ““ gewertet werden. Zweitens wenn die Anzahl der nichtleeren Zellen genau 26 ist, wird der Ganzzahlanteil 1, womit wir als Ergebnis ein A erhalten würde (Fehler) daher wird "Z" zurückgegeben wenn dieser Zustand eintritt und der zweite Buchstabe auf ““ gesetzt werden.

    erste Buchstabe:
    Code:
     =WENN(A3=26;"Z";WENN(A5=0;"";SVERWEIS(A5;Matrix;3;FALSCH)))
    zweite Buchstabe:
    Code:
     =WENN(B5=0;"";SVERWEIS(B5;Matrix;3;FALSCH))
    Damit sind dann alle möglichen Fälle abgearbeitet, da der Zellenindex IV ein Maximum ist (so weit mir bekannt).

    Gruß Amakido

    ps: ist vielleicht nicht die eleganteste Lösung aber es ist eine :roll:
     
    Amakido, 1. Juni 2006
    #9
Thema:

Daten kopieren

Die Seite wird geladen...
  1. Daten kopieren - Similar Threads - Daten kopieren

  2. Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen

    in Microsoft Excel Hilfe
    Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen: Hallo zusammen, ich habe folgendes Problem. Ich würde gerne in einem Tabellenblatt, bestimmte Daten aus einem anderen Tabellenblatt automatisch anzeigen lassen. Tabellenblatt 1 = Grundlage...
  3. VBA Makro Daten kopieren

    in Microsoft Excel Hilfe
    VBA Makro Daten kopieren: Hi zusammen, ich bräuchte eure Hilfe denn aktuell bin ich am verzweifeln: Ich brauche ein Makro für das deutsche Excel. Es gibt 2 verschiedene Arbeitsmappen mit jeweils einem aktiven...
  4. Daten aus verschiedenen Tabellenblättern kopieren

    in Microsoft Excel Hilfe
    Daten aus verschiedenen Tabellenblättern kopieren: Hallo zusammen, bin neu hier in diesem Forum und darf mit getrost als Excel Anfänger beschreiben :) Ich habe eine Frage, ich möchte aus verschiedenen Tabellenblätter Daten in eine neue Tabelle...
  5. Daten aus einem Arbeitsblatt in ein anderes Arbeitsblatt ohne leere Zeilen kopieren

    in Microsoft Excel Hilfe
    Daten aus einem Arbeitsblatt in ein anderes Arbeitsblatt ohne leere Zeilen kopieren: Hallo miteinander, ich habe ein Profil hier im Forum eröffnet, da ich im Moment am verzweifeln bin mit einer Knacknuss im Excel 2016 :confused: Ich schildere euch folgende Ausgangslage: Ich habe...
  6. [VBA] Daten auf Grund von Variable auf anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    [VBA] Daten auf Grund von Variable auf anderes Tabellenblatt kopieren: Hallo zusammen, vorab großes Lob an das Forum, ich konnte schon einige Dinge sinnvoll für mich nutzen, meine VBA Skills beschränken sich sonst eher auf das Anpassen von aufgezeichneten Makros...
  7. Excel VBA / Daten kopieren wenn Liste auf x steht.

    in Microsoft Excel Hilfe
    Excel VBA / Daten kopieren wenn Liste auf x steht.: Hallo zusammen, ich habe ein PowerQuery, welches ich ca. 2 mal im Monat aktualisiere. Aus dem Query möchte ich gerne die Daten per Makro in ein anderes Arbeitsblatt kopieren. Dabei möchte ich...
  8. Daten aus mehreren Blättern kopieren

    in Microsoft Excel Hilfe
    Daten aus mehreren Blättern kopieren: Hallo zusammen, ich würde gerne in der Spalte B den Namen aus einem anderen Blatt kopieren. Händisch müsste ich so in die passenden Zeilen die Formel ='1'!$B$3; ='2'!$B$3, ='3'!$B$3 eintragen....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden