Thema Datum  Von Nutzer Rating
Antwort
15.07.2009 15:48:37 Susii
NotSolved
15.07.2009 15:56:52 Murdoc
NotSolved
15.07.2009 16:06:13 Susi
NotSolved
15.07.2009 16:14:15 susi
NotSolved
15.07.2009 16:39:17 jh
NotSolved
15.07.2009 16:51:57 Murdoc
NotSolved
Rot Aw:Aw:Aw:Aw:Aw:Aw:VBA Datenaktivierung
15.07.2009 18:17:38 jh
NotSolved
15.07.2009 16:23:33 Murdoc
NotSolved

Ansicht des Beitrags:
Von:
jh
Datum:
15.07.2009 18:17:38
Views:
887
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Aw:Aw:Aw:VBA Datenaktivierung
Hallo,

ich will trotzdem mal kurz versuchen zu verdeutlichen, was damit gemeint
ist, dass Aktivieren/Selektieren in VBA meist unnötig ist. Das Problem ist
oft, dass man sich über den Code, den der Makrorecorder aufzeichnet, an
VBA annähert. Das ist zwr nicht die schlechteste Methode, aber der Code,
der dabei produziert wird, ist alles andere als optimal. Zur Verteidigung des
Recorders muss allerdings gesagt werden, dass er gar nicht anders kann.
Wenn du ein Objekt auswählst, kann er ja noch nicht wissen, was du damit
machen willst, also zeichnet er es eben erst mal so auf. So entsteht z. B. die
Befehlsfolge

Windows("Mappe1.xls").Activate
Sheets("Tabelle2").Select
Range("A1:A10").Select
Selection.Copy
Windows("Mappe2.xls").Activate
Sheets("Tabelle1").Select
Range("B1").Select
ActiveSheet.Paste

Das lässt sich zu einer einzigen Befehlszeile zusammenfassen:

Workbooks("Mappe1.xls").Worksheets( _
"Tabelle2").Range("A1:A10").Copy _
Destination:=Workbooks("Mappe2.xls") _
.Worksheets("Tabelle1").Range("B1")

Durch Verwendung von Objektvariablen wird es übersichtlicher:

Dim wksQuelle As Worksheet, wksZiel As Worksheet
Set wksQuelle = Workbooks("Mappe1.xls").Worksheets("Tabelle2")
Set wksZiel = Workbooks("Mappe2.xls").Worksheets("Tabelle1")
wksQuelle.Range("A1:A10").Copy Destination:=wksZiel.Range("B1")

Alles klar? ;-)

Gruß

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
15.07.2009 15:48:37 Susii
NotSolved
15.07.2009 15:56:52 Murdoc
NotSolved
15.07.2009 16:06:13 Susi
NotSolved
15.07.2009 16:14:15 susi
NotSolved
15.07.2009 16:39:17 jh
NotSolved
15.07.2009 16:51:57 Murdoc
NotSolved
Rot Aw:Aw:Aw:Aw:Aw:Aw:VBA Datenaktivierung
15.07.2009 18:17:38 jh
NotSolved
15.07.2009 16:23:33 Murdoc
NotSolved