Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1316to1320
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
Inhaltsverzeichnis

vba tabellenwerte in neue tabelle kopieren

vba tabellenwerte in neue tabelle kopieren
05.06.2013 17:15:14
diego
hallo excel cracks
ich bin absoluter vba beginner und möchte versuchen mir in nächster zeit ein paar vba kenntnisse anzueignen. in einer ersten recherche bin ich auf diese tolle seite gestossen. ich hoffe ihr könnt mir beim holprigen start etwas helfen. ich habe folgende aufgabe zu lösen:
ich verfüge über eine excel tabelle ("tabelle1") mit daten (inkl. formeln) in den zellen b1:t67 und möchte die in dieser tabelle enthaltenen informationen als werte (aber mit dem selben format wie in tabelle 1) in eine andere tabelle ("tabelle2") der gleichen excel datei kopieren.
um den kopiervorgang zu initialisieren möchte ich in tabelle "data update" einen button erstellen und mit dem makro verknüpfen. wie das geht ist mir aber einigermassen klar. das mit dem makro klappt jedoch nicht.
falls möglich sollte die tabelle2 aber schreibgeschützt sein, die enhalteten informationen sollten nur durch das makro verändert werden können und nicht manuell.
da das von mir geschriebene makro wirklich nur rudimentär ist, schreibe ich es hier nicht rein. ich wäre euch dankbar für eine kurze erklärung wie ich das makro schreiben kann.
auch wäre ich sehr dankbar für tipps wie ich mich in das thema vba reinarbeiten kann mit null vorwissen.
herzlichen dank
diego

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba tabellenwerte in neue tabelle kopieren
05.06.2013 18:35:51
Oberschlumpf
Hi diego
Es wäre schön, wenn du uns die Datei zeigst. Denn die Datei gibt es ja schon. Da müssen wir sie nicht noch mal erstellen.
Und außerdem ist es dann für uns einfacher, dir zu helfen.
Was deine Frage betrifft, wie du am besten VBA lernen kannst, würde ich sagen:
Du kannst es am besten lernen, wenn du, wie jetzt, wirklich eine (VBA-)Aufgabe hast, die du lösen willst.
So habe zumindest ich es am besten gelernt.
Und mittlerweile weiß ich über VBA schon so Einiges. Ich hab VBA übrigens komplett mit Hilfe dieses Forums gelernt. Kein einziges Buch hab ich mir gekauft. Daher wüsst ich jetzt auch kein Buch, welches ich empfehlen könnte.
Aber ok, erst mal eins nach dem Anderen. Zeig uns erst mal bitte deine Datei. Oder auch gern eine Bsp-Datei, die aber wie das Original aufgebaut sein muss. Anstelle der Originaldaten kannst Bsp-Daten eintragen.
Ciao
Thorsten

Anzeige
AW: vba tabellenwerte in neue tabelle kopieren
06.06.2013 10:25:43
fcs
Hallo diego,
so ein Makro kann wie folgt aussehen.
Die Breite der Spalten wird bei diesem Makro jedoch nicht mit kopiert. Das müsste man einmalig im Zielblatt manuell machen oder im Makro entsprechende Zeilen ergänzen.
Gruß
Franz
Sub CopyB1_T67()
Dim wksQuelle As Worksheet, wksZiel As Worksheet, strPW As String
With ActiveWorkbook
Set wksQuelle = .Worksheets("Tabelle1")
Set wksZiel = .Worksheets("Tabelle2")
End With
strPW = "MeinKennwort"
wksZiel.Unprotect Password:=strPW
wksQuelle.Range("B1:T67").Copy
With wksZiel
.Cells(1, 2).PasteSpecial Paste:=xlPasteFormats
.Cells(1, 2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.UsedRange.Locked = True
.Protect Password:=strPW
End With
End Sub

Anzeige
AW: vba tabellenwerte in neue tabelle kopieren
06.06.2013 10:31:18
Klaus
hallo excel cracks
Hallo Djego!
ich bin absoluter vba beginner und möchte versuchen mir in nächster zeit ein paar vba kenntnisse anzueignen.
Dann bist du in der Herber.de Community schonmal goldrichtig.
Da du selbst schreibst dass du lernen willst, werde ich dir nur Anhaltspunkte liefern und keine Komplettlösungen.
ich verfüge über eine excel tabelle ("tabelle1") mit daten (inkl. formeln) in den zellen b1:t67 und möchte die in dieser tabelle enthaltenen informationen als werte (aber mit dem selben format wie in tabelle 1) in eine andere tabelle ("tabelle2") der gleichen excel datei kopieren.
Die Codezeilen dazu sind:
sheets("Tabelle1").Range("B1:T67").Copy
sheets("Tabelle2").Range("B1:T67").PasteSpecial xlPasteValues
sheets("Tabelle2").Range("B1:T67").PasteSpecial xlPasteFormats

erste Zeile kopiert den benannten Bereich
zweite Zeile fügt den Inhalt ein, referenziert auf eine andere Tabelle
dritte Zeile fügt die Formate ein, ebenfallst referenziert.
(Hier könnte man noch besser referenzieren, aber erstmal einfach gehalten! Später mehr)
falls möglich sollte die tabelle2 aber schreibgeschützt sein, die enhalteten informationen sollten nur durch das makro verändert werden können und nicht manuell.
Um in schreibgeschützten Tabellen Code auszuführen, einfach den Schreibschutz per VBA aufheben, den Code ausführen, dann den Schreibschutz wieder setzen. Im Beispiel gehe ich davon aus, dass du KEIN Passwort hast:

sheets("Tabelle2").Unprotect
[Code der ausgeführt werden soll]
sheets("Tabelle2").Protect
da das von mir geschriebene makro wirklich nur rudimentär ist, schreibe ich es hier nicht rein. ich wäre euch dankbar für eine kurze erklärung wie ich das makro schreiben kann.
Beide deine Fragen habe ich mit Anhaltspunkten beantwortet. Probier mal aus, beide Antworten zu einem Makro zusammen zu führen!
auch wäre ich sehr dankbar für tipps wie ich mich in das thema vba reinarbeiten kann mit null vorwissen.
kleine Aufgaben, wie deine oben genannte, immer erstmal mit dem Makrorekorder ausführen. Von Anfang an, den Rekordercode SOFORT durchoptimieren, sonst gewöhnst du dir einen schlampigen Stil an.
In kurz: in der Zelle B2 soll "Hallo Welt" stehen
Wenn der Rekorder schreibt:
Sub Macro3()
' Macro3 Macro
Range("D34").Select
ActiveWindow.LargeScroll Down:=-1
Range("B2").Select
ActiveCell.FormulaR1C1 = "Hallo Welt"
Range("B3").Select
End Sub

Dann schaust du dir den Code an und stellst fest: das meiste ist unnötig. Erstmal alles rauswerfen was nicht mit B2 zu tuen hat:
Sub Macro3()
Range("B2").Select
ActiveCell.FormulaR1C1 = "Hallo Welt"
End Sub

und dann gleich angewöhnen, auf SELECT kann eigentlich immer verzichtet werden!
Sub Macro3()
Range("B2").FormulaR1C1 = "Hallo Welt"
End Sub

(das kann man noch weiter verkürzen, aber erstmal genug)
In länger: lies dieses hervorragende Tutorial von Peter Haserodt:
http://www.online-excel.de/excel/singsel_vba.php?f=78
Von der Seite ist auch alles andere lesenswert! Aber: nicht zu viel auf einmal!
Wilkommen in der Welt von VBA,
Klaus M.vdT.
Anzeige

77 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige