MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 09.07.2018, 16:40   #1
SA381
Neuer Benutzer
Neuer Benutzer
Wink VBA - VBA Bedingtes kopieren oder Verknüpfung

Hallo,

hoffe jemand kann mir helfen.

Habe zwei Tabellen mit mehreren Spalten, jedoch sind die Spaltenüberschriften in verschiedenen Sprachen.

Ich würde gerne ein Code schreiben, der mir dabei hilft Spaltenüberschrift und alle Einträge in den Spalten "Sprache" und "Languages" in eine neue Mappe in eine gemeinsame Spalte zu bekommen. Das gleiche würde ich gerne für "Alter" und "Age" machen.

Also Kopiere Spalte mit Spaltenüberschrift "Sprache" und kopiere Spalte mit Spaltenüberschrift "Languages" in das Blatt 3 in die Spalte 1... so in etwa...

Wie mache ich das am besten ?


Würde mich echt freuen.
SA381 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.07.2018, 16:42   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

es sollen also 2 Spalten in eine Spalte kopiert werden?

Im Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.

GrußformelHomepage

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Fragen werden im Forum beantwortet, nicht per PN.

Geändert von Hajo_Zi (09.07.2018 um 16:50 Uhr).
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.07.2018, 18:45   #3
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Sind die Spalten "Sprache" und "Language" in den beiden Tabellenblättern in der gleichen Spalte (also zB Spalte A)?
Aber auch wenn nicht, ist es eigentlich egal, solange bei jedem Kopiervorgang immer die gleichen Spalten gültig sind. Also zB "Sprache" steht in Tabelle1 in Spalte A und "Language" steht in Tabelle 2 in Spalte D. Wenn das immer gleich ist, gehe einfach über die Spaltennummer. Denn die Überschrift ist VBA ja grundsätzlich egal.
Einzig wenn die Sprachen jedesmal in einer anderen Spalte stehen würden, müsste man das tatsächlich über die Überschrift abgleichen. Das kann ich mir aber eigentlich nicht vorstellen.

Du kannst so vorgehen:
Code:

Sub zusammenfassen()
Dim letzte1 As Integer
Dim letzte2 As Integer
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Ziel As Worksheet

Set ws1 = Sheets("Tabelle1")
Set ws2 = Sheets("Tabelle2")
Set Ziel = Sheets("Tabelle3")
letzte1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row
letzte2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row

    ws1.Range("A2:A" & letzte1).Copy
    Ziel.Range("A2").PasteSpecial
    
    ws2.Range("A2:A" & letzte2).Copy
    Ziel.Range("A" & letzte1 + 1).PasteSpecial

End Sub

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 08:52   #4
SA381
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Hinweis

Zitat: von MisterBurns Beitrag anzeigen

Sind die Spalten "Sprache" und "Language" in den beiden Tabellenblättern in der gleichen Spalte (also zB Spalte A)?
Aber auch wenn nicht, ist es eigentlich egal, solange bei jedem Kopiervorgang immer die gleichen Spalten gültig sind. Also zB "Sprache" steht in Tabelle1 in Spalte A und "Language" steht in Tabelle 2 in Spalte D. Wenn das immer gleich ist, gehe einfach über die Spaltennummer. Denn die Überschrift ist VBA ja grundsätzlich egal.
Einzig wenn die Sprachen jedesmal in einer anderen Spalte stehen würden, müsste man das tatsächlich über die Überschrift abgleichen. Das kann ich mir aber eigentlich nicht vorstellen.

Du kannst so vorgehen:

Code:

Sub zusammenfassen()
Dim letzte1 As Integer
Dim letzte2 As Integer
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Ziel As Worksheet

Set ws1 = Sheets("Tabelle1")
Set ws2 = Sheets("Tabelle2")
Set Ziel = Sheets("Tabelle3")
letzte1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row
letzte2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row

    ws1.Range("A2:A" & letzte1).Copy
    Ziel.Range("A2").PasteSpecial
    
    ws2.Range("A2:A" & letzte2).Copy
    Ziel.Range("A" & letzte1 + 1).PasteSpecial

End Sub

Hi Berni,

Danke nochmal für deinen Beitrag.

Die Spalten der Quellen sind unterschiedlich also in der einen Quelle ist Sprache in Spalte B und in der anderen ist Languages in Spalte V.....Deshalb wollte ich eine Spaltenunabhängige Lösung für dieses Problem finden da sich auch im Laufe der Zeit die Spaltenreihenfolge ändern kann oder Spalten nachträglich eingefügt werden können.

Könnte man das vielleicht so in der Art lösen?

Sub kopierenAusMehrerenListen()

Dim Spalte as Integer

With Sheets("Deutschland")
Spalte=.cells.Find(what:="Sprache",LookIn:=xlValues.Column
.columns(Spalte).copy Destination:=Sheets("GemeinsameListe").Columns(2)
end with

With Sheets("England")
Spalte=.cells.Find(what:="Languages",LookIn:=xlValues.Column
.columns(Spalte).copy Destination:=Sheets("GemeinsameListe").Columns(2)
end with

end Sub


Die gemeinsame Liste hat bereits Spaltenüberschriften in dem Fall Statt Sprache und Languages steht AufnahemSprache (Spalte 2 in GemeinsameListe)

Das funktioniert soweit nur überschreibt er die ersten kopierten Einträge mit dem zweiten Teil und kopiert auch die Überschriften der Spalten aus den Blättern...wie kann ich das so ändern, dass er erst die Liste Deutschland einfügt und dann ausgehend vom letzten Zeileneintrag die Liste England hinzufügt. Die Spaltenüberschriften möchte ich auch nicht übernehmen sondern kopieren ab der zweiten Zeile der einzelnen Listen...

Wäre echt dankbar.

Geändert von SA381 (11.07.2018 um 08:59 Uhr).
SA381 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 14:05   #5
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Dass es die Spalte überschreibt ist logisch, da du immer die komplette Spalte kopierst. Du musst den Code oben mit dem find-Teil kombinieren. Ich kann dir momentan nicht weiter helfen, da ich erst wieder nächste Woche wieder Zugang zu einem PC habe. Evtl hilft dir jemand anderes hier, sonst bitte warten bis Dienstag. Nur soviel - fallls die Spalten B und V immer gleich bleiben, hast du das Problem eigentlich nicht.

__________________

Schöne Grüße
Berni

Geändert von MisterBurns (11.07.2018 um 14:07 Uhr).
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.07.2018, 12:22   #6
SA381
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Hinweis

Zitat: von MisterBurns Beitrag anzeigen

Dass es die Spalte überschreibt ist logisch, da du immer die komplette Spalte kopierst. Du musst den Code oben mit dem find-Teil kombinieren. Ich kann dir momentan nicht weiter helfen, da ich erst wieder nächste Woche wieder Zugang zu einem PC habe. Evtl hilft dir jemand anderes hier, sonst bitte warten bis Dienstag. Nur soviel - fallls die Spalten B und V immer gleich bleiben, hast du das Problem eigentlich nicht.

Hi Berni,

habe nun einiges probiert kann die beiden irgendwie nicht richtig kombinieren :/

Ich warte bis du dazu kommst und freue mich über einen Lösungsansatz wenn du einen hast.
schönes Wochenende !
SA381 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.07.2018, 23:56   #7
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Hallo und Grüß Gott!

Das sollte nun machen, was du möchtest:
Code:

Sub zusammenfassen()
Dim letzte1 As Integer
Dim letzte2 As Integer
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Ziel As Worksheet
Dim Spalte1 As Integer
Dim Spalte2 As Integer

Set ws1 = Sheets("Tabelle1")
Set ws2 = Sheets("Tabelle2")
Set Ziel = Sheets("Tabelle3")
Spalte1 = ws1.Cells.Find(what:="Sprache", LookIn:=xlValues).Column
Spalte2 = ws2.Cells.Find(what:="Languages", LookIn:=xlValues).Column
letzte1 = ws1.Cells(Rows.Count, Spalte1).End(xlUp).Row
letzte2 = ws2.Cells(Rows.Count, Spalte2).End(xlUp).Row

    ws1.Range(Cells(2, Spalte1).Address, Cells(letzte1, Spalte1).Address).Copy
    Ziel.Range("A2").PasteSpecial

    ws2.Range(Cells(2, Spalte2).Address, Cells(letzte2, Spalte2).Address).Copy
    Ziel.Range("A" & letzte1 + 1).PasteSpecial

End Sub
Für Alter/Age solltest du damit zurechtkommen denke ich.

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.07.2018, 08:18   #8
SA381
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von MisterBurns Beitrag anzeigen

Hallo und Grüß Gott!

Das sollte nun machen, was du möchtest:

Code:

Sub zusammenfassen()
Dim letzte1 As Integer
Dim letzte2 As Integer
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Ziel As Worksheet
Dim Spalte1 As Integer
Dim Spalte2 As Integer

Set ws1 = Sheets("Tabelle1")
Set ws2 = Sheets("Tabelle2")
Set Ziel = Sheets("Tabelle3")
Spalte1 = ws1.Cells.Find(what:="Sprache", LookIn:=xlValues).Column
Spalte2 = ws2.Cells.Find(what:="Languages", LookIn:=xlValues).Column
letzte1 = ws1.Cells(Rows.Count, Spalte1).End(xlUp).Row
letzte2 = ws2.Cells(Rows.Count, Spalte2).End(xlUp).Row

    ws1.Range(Cells(2, Spalte1).Address, Cells(letzte1, Spalte1).Address).Copy
    Ziel.Range("A2").PasteSpecial

    ws2.Range(Cells(2, Spalte2).Address, Cells(letzte2, Spalte2).Address).Copy
    Ziel.Range("A" & letzte1 + 1).PasteSpecial

End Sub
Für Alter/Age solltest du damit zurechtkommen denke ich.

Vielen lieben Dank. Das klappt richtig gut !
SA381 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.