Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Starthilfe
#1
Hallo zusammen,

ich habe mir ein Account erstellt um euren Rat zu meinem Problem anzuhören.
Ich bin seit Längerem an einem Excel-Projekt beschäftigt, welches ein Excelformat (Kalkulation einer anderen Abteilung) automatisch überträgt auf eine andere (für uns notwendige) Vorlage. Die Kalkulation kann aus verschiedenen Tabellen innerhalb einer Datei bestehen, muss es aber nicht. Ich habe es mithilfe von verschiedensten Funktionen und Übersetzungstabellen hingekriegt, dass bei der Übernahme dieser Kalkulationstabellen die Übertragung in unsere Vorlage stattfindet. Allerdings muss aktuell jede Tabelle der Kalkulationsdatei händisch per copy paste in meine Vorlage eingefügt werden. 
Jetzt zu meinem Problem:
Ich habe gehört, dass es möglich ist diesen Schritt per VBA über einen Button erfolgen zu lassen. Allerdings reichen meine Kenntnisse ich bis jetzt nur so weit, dass ich herausgefunden habe wo ich draufklicken muss um ein Makro (Modul?) zu schreiben :18: Huh . Sollte ich mich eurer Meinung nach in die VBA Geschichte einlesen oder meint ihr mein Vorhaben ist zu kompliziert, als dass es sich für ein Befehl lohnt sich den Kopf darüber kaputt zu machen? Perfekt wäre es natürlich, wenn einer aus dem Forum so versiert ist und mir dabei hilft einen geeigneten Makro zu schreiben. 

Vielen lieben Dank für eure Antworten!!
Antworten Top
#2
schau dir mal die Makro recorder an, ansonsten kannst du den Code hier nehmen.

Code:
Sub kopieren ()

Range("XXX").SpecialCells(xlCellTypeVisible).Copy 'X die Zellen anpassen welche du kopieren willst (hier gibt es mehrer "Arten" zu kopieren, nimm das welches du brauchst (https://docs.microsoft.com/de-de/office/vba/api/excel.range.specialcells)
Workbooks.Open Filename:="XX" 'XX Den Pfad der Datei/Vorlage in welche kopiert werden soll
Worksheets("XXX").Select 'XXX das Tabellenblatt auswählen in welches kopiert werden soll
Range("XXXX").Select 'XXXX Zelle auswählen in welche kopiert werden soll z.B. "A2"
ActiveSheet.Paste

End Sub

dann über die Entwicklertools ein Commandbutton einfügen und das Makro darauf laufen lassen.
[-] Folgende(r) 1 Nutzer sagt Danke an elamigo für diesen Beitrag:
  • Ilyas55
Antworten Top
#3
Hallo Ilyas,

dein Vorhaben scheint relativ trivial zu sein, ich beobachte häufig Anfragen zu dem Thema "Kopiere Daten von A nach B".

Nehmen wir mal an, dir programmiert jemand eine Lösung, die du wahrscheinlich nicht verstehst (oder hast du den Code von elamingo verstanden?), wie gehst du dann damit um wenn sich was ändern soll/muss? Wieder im Forum nachfragen??

Wenn von deiner Seite keine Bereitschaft vorhanden ist, dich von null an in das Thema einzuarbeiten (und mehr oder weniger Zeit zu investieren), dann lass die Finger davon. Sonst bist du immer von externer Hilfe abhängig. Du hast eine funktionierende (wenn auch unbequeme) Lösung.

vg, MM
[-] Folgende(r) 2 Nutzer sagen Danke an mmat für diesen Beitrag:
  • elamigo, Ilyas55
Antworten Top
#4
da stimme ich mmat zu, wenn du wirklich keine Bereitschaft an den Tag legst, dich damit zu befassen, dann muss du ohne VBA weiter machen.
[-] Folgende(r) 1 Nutzer sagt Danke an elamigo für diesen Beitrag:
  • Ilyas55
Antworten Top
#5
Vielen vielen Dank!

Ich werde mich am Montag mit deinem Vorschlag beschäftigen.
Ich habe ganz nebenbei auch was von einem Makro Recorder gehört. Soweit ich das verstanden ist das eine Funktion, welches meine Schritte, die ich in Excel vornehme, aufzeichnet und in einem Befehl speichert. Diesen Befehl immer wieder ausführen lassen. Mein Problem ist allerdings, dass sich die Anzahl der zu kopierenden Tabellen ständig ändert.
Ich sehe in deinem Code, dass die Range innerhalb eines Worksheets kopiert wird. Gibt es auch eine Möglichkeit zu sagen:
wenn Worksheet 1 in Workbook X vorhanden (vorlage, die ich kopieren möchte); dann range (ab) in worksheet 1 von workbook Y übertragen
                                      und
wenn worksheet 2 in Workbook X vorhanden (vorlage, die ich kopieren möchte); dann range (ab) in worksheet 2 von workbook Y übertragen

usw. bis maximal 10 Tabellen, die eingefügt werden können.

So würde ich theoretisch alles abdecken. Funktioniert das bei VBA?

LG

Danke auch für deine Antwort!

Ich möchte mich so weit damit beschäftigen, dass mein Problem gelöst werden.
Die Funktion, die mir vorgeschlagen wird versuche ich natürlich zu durchschauen um gegebenenfalls Änderungen vorzunehmen. Der Code von elamingo erscheint mir recht simpel. (Auch wenn ich die Syntax nicht verstehe)
Ich habe mal ein wenig reingeschnuppert und habe festgestellt, dass das ein Riesenthema ist, was man im übrigen sogar studieren kann :46:
Die Frage ist bloß: Was davon brauche ich und wie viel Aufwand wird benötigt um zu dem Punkt zu kommen diese Übertragungsgeschichte selber vorzunehmen.

LG
Antworten Top
#6
Hallo Ilyas,

aus meiner Sicht eignet sich der Makrorekorder nur sehr bedingt zum lernen von VBA. Der Rekorder erstellt so etwas wie eine Logdatei, in der alle Tastendrücke gespeichert werden. Das hat mit programmieren nichts zu tun.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Ilyas55
Antworten Top
#7
Danke Klaus Dieter,

so ähnlich habe ich mir das auch vorgestellt.
Im Grunde wäre mir das sogar egal, wenn sich dadurch mein Problem löst.
Aber wie vorhin beschrieben kann ich mit dem Rekorder nur einen spezifischen Fall abdecken und das reicht mir nicht.
Antworten Top
#8
Hallo,

Zitat:Aber wie vorhin beschrieben kann ich mit dem Rekorder nur einen spezifischen Fall abdecken und das reicht mir nicht.

... was Du aber machen kannst, ist, den von Dir aufgezeichneten Code hier vorzustellen.
Das Anpassen des Codes an Deine Wünsche wäre dann ein nächster Schritt.
Im Übrigen, es ist uns allen bekannt, daß der vom Recorder gelieferte Code ziemlich
holperig daherkommt und der Anpassung bedarf.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Ilyas55
Antworten Top
#9
Meine abschließende MEINUNG .

Lass die Finger davon. Einen Minimalansatz gibt's nicht. Es gib immer ein neues Problem, von dem du heute noch nicht weißt, das es existiert. Ohne halbwegs fundierte Grundkenntnisse mit Code rumbasteln der im professionellen Umfeld eingesetzt wird, ist sicher nicht der Weisheit letzter Schluss.

Und ja, programmieren lernen ist aufwändig. Es setzt auch eine gewisse Bereitschaft voraus, sich mit Problemen auseinanderzusetzen, die man gar nicht hat, einfach nur um des Lernens willen.

Ansonsten gibt's im Internet sicher irgendwo einen Einführungslehrgang ... Sich damit weitestgehend selbstständig zu beschäftigen, sehe ich auch als Voraussetzung an.

vg, MM
[-] Folgende(r) 1 Nutzer sagt Danke an mmat für diesen Beitrag:
  • Ilyas55
Antworten Top
#10
Hallo MM,

Zitat:Und ja, programmieren lernen ist aufwändig. Es setzt auch eine gewisse Bereitschaft voraus, sich mit Problemen auseinanderzusetzen, die man gar nicht hat, einfach nur um des Lernens willen.

das sich mit der Materie beschäftigen hatte ich als zwingend vorausgesetzt.

Ist das vom TE nicht gewünscht, stimme ich Dir vollumfänglich zu. Dafür gibt
es dann letztendlich Dienstleister.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Ilyas55
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste