| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: VBA Code für Kopieren in andere Tabelle (2051 mal gelesen)
|
mereo Mitglied versicherungs vermittler
 Beiträge: 2 Registriert: 11.09.2014
|
erstellt am: 11. Sep. 2014 15:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen. Ich bin Anfänger was VBA Programierung angeht, habe es aber schon geschafft, meine Tabelle automatisch nach datum zu sortieren mit VBA :-) Jetzt möchte ich folgendes: Wenn ich eine bestimmte Auswahl aus einem Drobdown Menü auswähle, dann soll es mir bestimmte Zellen einer Zeile in ein andere Tabelle kopieren. Um das zu verstehen: ich habe eine tabelle mit meinen Terminen, und ein Drobdown auswahl mit: besucht, abgesagt, offen und anrufen. wenn ich jetzt bei einem termin anrufen oder offen auswähle, sollte es bestimmte zellen ind eine andere tabelle kopieren so das ich eine tabelle habe mit allen offenen oder allen anzurufenden. DAnke im voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
 
 Beiträge: 400 Registriert: 11.08.2007 Win 10 Pro, Office 97 bis Office 2016
|
erstellt am: 11. Sep. 2014 15:58 <-- editieren / zitieren --> Unities abgeben:          Nur für mereo
Hi, kannst du mit folgendem prinzipiellen Code im Codemodul des Tabellenblattes machen: Code: Private Sub Worksheet_Change(ByVal Target As Range) Dim lngErste As Long Dim strZiel As String ' in Spalte B wird offen oder anrufen ausgewählt If Target.Column = 2 Then ' Zieltabelle heißt entweder "offen" oder "anrufen" Select Case Target Case "offen" strZiel = "offen" Case "anrufen" strZiel = "anrufen" End Select With Worksheets(strZiel) ' erste freie Zeile ermitteln in Spalte A des Zieltabellenblattes lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1 ' kopiert wird aktuelle Zeile von Spalte A bis L in die erste freie Zeile der Zieltabelle Range(Target.Offset(0, -1), Target.Offset(0, 10)).Copy .Cells(lngErste, 1) End With End If End Sub
Genauer kann ich es nicht machen da ich deinen Tabellenaufbau und deine konkreten Bedingungen nicht kenne. ------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mereo Mitglied versicherungs vermittler
 Beiträge: 2 Registriert: 11.09.2014
|
erstellt am: 11. Sep. 2014 20:43 <-- editieren / zitieren --> Unities abgeben:         
Also erstmals danke für die schnelle Antwort.... Hmm sieht schon mal nach dem aus das ich suche, aber funktioniert noch nicht so.... Also mal ein wenig konkreter was ich brauche: Wenn in Tabelle "Terminblatt" in Spalte "L" "Terminieren oder Nachfragen" steht, dann soll folgende Zellen in dieser Zeile kopiert werden: A E F G L. Die Kopie soll in Tabelle "Zu Erledigen" in Zeile ( ab 3 fortlaufend) Kopiert werden und zwar in Spalte A B C D E. So nun ich hoffe ich habe das verständlich aufgeschrieben. Bitte auch eine Kurzanleitung wo genau ich wie den code einfügen muss, sonst probiere ich wieder ein paar stunden :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
 
 Beiträge: 400 Registriert: 11.08.2007 Win 10 Pro, Office 97 bis Office 2016
|
erstellt am: 11. Sep. 2014 21:12 <-- editieren / zitieren --> Unities abgeben:          Nur für mereo
Also was steht denn nun in der Spalte "anrufen" oder "offen" wie in deinem Eröffnungsbeitrag oder "Terminieren" oder "Nachfragen"? Code einfügen: Rechtsklick auf den Tabellenreiter von "Terminblatt" und dann ins Codefenster rechts einfügen. Wenn es Spalte L ist, dann ändere diese Codezeile: Code: If Target.Column = 12 Then
Sollen nur die Spalten A:E kopiert werden, dann ändere zusätzlich noch diesen Teil: Code: Range(Target.Offset(0, -11), Target.Offset(0, -6)).Copy .Cells(lngErste, 1)
Wenn immer nur in eine Tabelle kopiert werden soll, dann lösche alles von Select Case bis einschließlich End Select und ändere diesen Teil: Code: With Worksheets("Zu Erledigen")
Wie du siehst, kann man immer nur so genau antworten wie die Fragen gestellt und die konkreten Bedingungen genannt werden. Denek bitte in Zukunft daran. ------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |