Anzeige
Archiv - Navigation
1188to1192
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

Formeln kopieren per Makro

Formeln kopieren per Makro
Pascal
Guten Tag allerseits !
Brauche mal wieder die Hilfe von echten VBA – Hasen und Profis
Und zwar geht’s diesmal um folgendes Problem / Frage:
In einer grossen Excel-Arbeitsmappe (mehrere Tabellenblätter) fügen wir täglich auf dem Tabellenblatt 1 eine unterschiedliche Anzahl von Datensätzen hinzu.
Diese Datensätze erstrecken sich jeweils von der Spalte A bis und mit Spalte I
Nun möchte ich folgendes tun:
Auf Knopfdruck soll ein Makro starten, dass folgendes tut:
Popup soll eingeblendet werden, mittels welchem der User aufgefordert wird ein Datum einzutippen.
Nach klick auf OK soll das Makro dann dieses Datum bei allen neu hinzugefügten Datensätzen in die Spalte J schreiben.
Bereits in der Datenbank vorhandene Datensätze sollen dabei aber nicht überschrieben werden. Das Datum soll wirklich nur bei den frisch
Hinzugefügten Datensätzen hinzugefügt werden.
Dann soll das Makro bei all diesen neu hinzugefügten Datensätzen in den Spalen K; L und M je eine Formel hinschreiben. Diese Formel wird sozusagen jeweils
ab den bereits bestehenden Datensätzen rauskopiert.
z.B.
Spalte K beinhaltet die Formel: gleich Zahl weniger Zahl
Spalte L beinhaltet die Formel: gleichWENN...(auch hier sollte die Zahl fortlaufend pro Datensätz sein)
Spalte M beinhaltet die Formel gleichSVERWEIS...(auch hier sollte die Zahl fortlaufend pro Datensatz aufsteigen)
Und …. Diese Formeln sollen vor Überschreiben des Users geschützt sein.
Geht sowas auf Knopfdruck ?
Ich weiss ech nicht wie ich das anfangen soll
Irgendwas mit "Inputbox …..
Währe wirklich sautoll und sehr nett, wenn mir hier jemand betreffend Lösungsansätzen behilflich sein könnte.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nachfrage
06.12.2010 09:12:07
Matthias
Hallo Pascal
Ich bin zwar kein Profi, aber ...
... kannst Du bitte ein Bsp. posten mit bereits eingetragenen DS und neuen DS, welche Du dann mit den Formeln füllen willst?


Ich bin gehe jetzt mal davon aus, das es in etwa so werden soll.
Userbild
Ist das korrekt?
Gruß Matthias
AW: Nachfrage
06.12.2010 10:24:28
Pascal
Hallo !
Ja, das haste genau richtig interpretiert
ich habe mal eine ganz kleine Beispielsdatei beigefügt.
Klar doch: Die Datensätze wurden abgeändert (beim Original sind vertrauliche Dinge dabei :-)
Nun füge ich also z.b. heute wieder Datensätze in die Spalten A bis J (und sagen wir mal bis zur Zeile 15)
Nun soll dann mittels Knopfdruck also alles was farbig ist ausgefüllt werden (Datum gibt der user wenn immer möglich per Inputbox ein)
Ich hoffe, das sei so verständlich ?
https://www.herber.de/bbs/user/72608.xls
Anzeige
hier mal meine Variante ...
06.12.2010 11:03:22
Matthias
Hallo Pascal
https://www.herber.de/bbs/user/72610.xls
Private Sub CommandButton1_Click()
Dim x As Long, y As Long, j As Long
Dim MyDatStrg As String
MyDatStrg = InputBox("Bitte Datum angeben", "Datum", Date)
If StrPtr(MyDatStrg) = 0 Then Exit Sub 'Abbrechen gedrückt
If Not IsDate(MyDatStrg) Then Exit Sub 'Kein Datum
x = Cells(Rows.Count, 10).End(xlUp).Row
y = Cells(Rows.Count, 1).End(xlUp).Row
For j = x + 1 To y
Cells(j, 10).Value = CDate(MyDatStrg)
Next
Range(Cells(x, 11), Cells(x, 13)).AutoFill Destination:=Range(Cells(y, 11), Cells(x, 13))
End Sub
Gruß Matthias
Anzeige
da fehlte noch was ...
06.12.2010 11:13:33
Matthias
Hallo
Ersetze bitte diese Zeile:
Range(Cells(x, 11), Cells(x, 13)).AutoFill Destination:=Range(Cells(y, 11), Cells(x, 13))
durch diese Zeile:
If x y Then Range(Cells(x, 11), Cells(x, 13)).AutoFill Destination:=Range(Cells(y, 11), Cells(x, 13))
Gruß Matthias
AW: hier mal meine Variante ...
06.12.2010 11:19:20
Pascal
Hallo Matthias !
Mal herzlichen Dank für Deinen Vorschlag !!!! - genau was ich brauche !!!
Nun muss ich den Code irgendwie noch umschreiben, erweitern, anpassen, dass dann die Formeln in den Spalten J, K, L, M vor Überschreibung durch den User geschützt sind.
geht das irgendwie ?
Gruss: Pascal
Anzeige
Tabellenblatt schützen ...
06.12.2010 11:38:45
Matthias
Hallo
Zellschutz manuell setzen, dann Blatt schützen mit VBA-Code
Activesheet.UnProtect 'Schutz entfernen
'der Code
Activesheet.Protect 'Schutz setzen


oder evtl. hinter UnProtect/Protect noch ein Passwort einpflegen
Activesheet.UnProtect "0000"
'der Code
Activesheet.Protect "0000"
Gruß Matthias
AW: Tabellenblatt schützen ...
06.12.2010 12:47:41
Pascal
.. PERFEKT !
genau was ich wollte :-)
Nun such ich noch ne möglichkeit per weiterer Schaltfläche den Datensatz in Spalte A in die nächste freie Zeile zu kopieren.
geht das ? evt. kannste mir dabei ja auch helfen ? :-)
und... die grösste Herausforderung dürfte dann sein, mittels Makro alle in der Arbeitsmappe vorhandenen Pivot-Table-Bereiche entsprechend Anzahl Datensätze zu aktualisieren.
D.h. ich habe drei Pivottables. Diese haben als Quellbereich jeweils alle Datensätze eingestellt. Nun währe es natürlich sensationell toll, wenn sich diese Quellbereiche jeweils auch gleich an die Datensätze anpassen würden.
Anzeige
schön, wenn ich helfen konnte, aber ...
06.12.2010 22:02:41
Matthias
Hallo
... mit Pivot musst Du auf eine(n) andere(n) Helfer(in) warten. Da bin ich nicht fit genug.


Zitat:
Nun such ich noch ne möglichkeit per weiterer Schaltfläche den Datensatz in Spalte A in die nächste freie Zeile zu kopieren.
geht das ? evt. kannste mir dabei ja auch helfen ? :-)

Das musst Du nochmal genauer erklären.
Welchen Datensatz willst Du in die nächste freie Zeile kopieren?
Gruß Matthias
AW: schön, wenn ich helfen konnte, aber ...
07.12.2010 07:14:16
Pascal
Guten Morgen !
also... ich habe in der Zeile 2 einen Datensatz der sich von der Spalte A bis und mit i erstreckt.
dieser Datensatz soll per Knopfdruck in die nächste freie Zeile der Datenbank kopiert werden.
Anzeige
das geht so ...
07.12.2010 07:37:39
Matthias
Guten Morgen Pascal
Private Sub CommandButton2_Click()
Dim y As Long
y = Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("A2:I2").Copy Destination:=Range("A" & y & ":I" & y)
End Sub
Gruß Matthias
AW: das geht so ...
07.12.2010 09:44:06
Pascal
D A N K E !!!!!!!!!!!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige