27.06.2014, 11:42
Hi VondeAn,
schau dir das mal an:
schau dir das mal an:
![]() Forum des Excel-Verein 2015 e.V. |
Das Clever-Excel-Forum
|
|
VBA: Bereich mit Variable adressieren und erweitern
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
27.06.2014, 11:46
Hallo Max,
wenn du nur den Bereich jetzt 10 mal kopieren willst, würde ich gar kein VBA nehmen und einfach 10 mal kopieren. über VBA wäre das Code: Option Explicit
lg Chris
Feedback nicht vergessen. ![]() 3a2920576572206973742064656e20646120736f206e65756769657269672e
27.06.2014, 11:51
(27.06.2014, 11:46)chris-ka schrieb: Hallo Max, Na ja, es geht ja schlussendlich darum, dass dieses Dokument als Vorlage verwendet wird, die dann verschiedene Leute zu verschiedenen Zwecken mehrmals ausfüllen werden. Dabei soll man dann diesen Bereich, der vordefinierte Felder zum Ausfüllen hat, ausfüllen und bei Bedarf einen neuen anfügen können. Natürlich ist die Anzahl dieser Bereiche aber nicht immer dieselbe. Daher der Button. Vielen Dank für eure Hilfe, ich seh mir jetzt beides mal an. Gruß Max
27.06.2014, 11:53
Hallo Max,
darum kann ich mich erst nach meinem Arztermin kümmern. Taxi wartet schon.
27.06.2014, 11:59
(27.06.2014, 11:42)Heinz Ulm schrieb: Hi VondeAn, Okay, das funktioniert immerhin so, wie ich mir das vorgestellt hatte. Der Code ist recht umfangreich, und es wäre mir persönlich lieber gewesen, ihn so einfach wie möglich zu halten, damit ich ihn dann besser an mein Layout anpassen kann... Eben eine Abwandlung des einfachen Kopiercodes, den ich am Anfang dieses Threads gepostet hatte, nur noch erweitert um die Verschiebung des Einfügepunktes... Nichtsdestotrotz bin ich schon mal sehr dankbar dafür! Ich werde mich mal durchwühlen und schauen, ob ich das an meine Zwecke angepasst bekomme. Die Kommentare sind auf jeden Fall sehr hilfreich. Vielen Dank dafür! Falls ich noch eine Frage habe, schreib ich sie hier rein. Grüße, MAx
27.06.2014, 12:35
Hey Heinz,
ich habe mal versucht, deinen Code etwas zu "verschlanken" und alles rauszuschmeißen, was nicht mehr nötig ist. Dabeu habe ich aber anscheinend irgendwas falsch gemacht. Der Code sieht momentan so aus: Code: Sub Uebersicht()Ich habe die Zählung bis 8 (ich hatte diesen Wert nur angegeben, weil eine unbegrenzte Anzahl an Wiederholungen nicht möglich ist) und die Sache mit der zweiten Spalte in der "Bereichsliste" (nette Idee, aber nicht nötig, weil die endgültigen Bereiche viel flacher werden) rausgenommen, inklusive der entsprechenden Variablen. Dort, wo bei 'Range' jetzt ???? steht, soll einfach ein fester Wert rein. Blöderweise weiß ich nicht, wie da die Syntax auszusehen hat, und egal, wie ich es versuche, kommt immer folgendes: Laufzeitfehler '1004': Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen Was mache ich falsch? Mein Ziel ist ein Code, der wirklich NICHTS anderes tut als: Kopieren, unter den vorhandenen Einträgen Einfügen, fertig. Und das nach Möglichkeit ohne irgendwelche sichtbaren Werte in irgendwelchen sichtbaren Zellen. Vielen Dank!!! Max
Hi Max,
(27.06.2014, 12:35)VodeAn schrieb: Dort, wo bei 'Range' jetzt ???? steht, soll einfach ein fester Wert rein. Blöderweise weiß ich nicht, wie da die Syntax auszusehen hat, und egal, wie ich es versuche, kommt immer folgendes: Range benötigt eine Zellangabe in " Also z.B. Range("C5") Damit legst Du die Zelle C5 fest. Wenn Du es variabel haben willst, mußt Du den Variablen auch Werte zuweisen. Code: 'Festlegung des Einfügepunktes, welche Spalte (Zspalte = der Wert aus der H3 undRange(???? + kZeile) ist keine Zellangabe, egal, was Du anstelle ???? einsetzt. Denn 1. ist kZeile nirgends mit einem Wert gefüllt 2. die Variable heißt kSpalte und nicht ZSpalte => deswegen gibt es den Parameter "Option Explicit", dann werden solche Fehler verhindert / angezeigt. 3. kSpalte hat keinen Wert 4. ZZeile hat keinen Wert 5. Syntax stimmt nicht. 6. mMn ist da Cells(ZZeile, ZSpalte) besser geeignet versuchs mal so: Code: kSpalte = Range("H3").ValueNoch ein Tipp zur Verschlankung: xxx.Select Selection.YYY kann meistens durch xxx.YYY ersetzt werden.
27.06.2014, 13:18
Hi Max,
der Code läuft so bei mir: Code: Sub Uebersicht()Die Formeln brauchst du: Eingabe
mach die Schriftfarbe "weiss", dann siehst du auch nichts.
27.06.2014, 13:55
(27.06.2014, 13:18)Heinz Ulm schrieb: Die Formeln brauchst du: Aber das ist doch jetzt wieder für die zweite Spalte! Diese Funktion will ich doch rausnehmen, weil ich sie nicht brauche, darum geht es doch! Wenn ich das nicht würde rausnehmen wollen, hätte ich deinen ursprünglichen Code ja auch einfach übernehmen können. Ich zitiere mich nochmal selbst: (27.06.2014, 12:35)VodeAn schrieb: Mein Ziel ist ein Code, der wirklich NICHTS anderes tut als: Kopieren, unter den vorhandenen Einträgen Einfügen, fertig. KEINE 2 Spalten in der Auflistung! Gruß, Max
27.06.2014, 14:01
Hi Max,
bei dem Code wird alles untereinander in der Spalte C kopiert. Die Berechnung brauchst du, weil es ja nicht immer die gleiche ANZAHL der Kopien ist. Wenn du das wolltest, geht's einfach mit einer Schleife, 8 mal kopieren. Fertig. Das wurde dir aber schon mal von chris-ka vorgeschlagen | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||