Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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 Formel kopieren und ausführen | Herbers Excel-Forum

VBA Formel kopieren und ausführen
30.01.2010 08:49:30
bluesky61@team-ab.de

Hallo zusammen,
aus Access hole ich per Query immer wieder verschiedene Datensatzmengen zur weiteren Verarbeitung in ein Worksheet ("Produktion"). Überschriften A1:T1 , Datensätze unterschiedliche Anzahl
Zur weiteren Auswertung, muss ich häufig noch Formeln daneben setzen (z.B. in Spalte U)
Da normalerweise zumindest die Zeile 2 gefüllt ist, habe ich in U2 schon eine Formel:
=Kalenderwoche(A2;2), diese Formel ist für meine Wünsche ausreichend.
1. die Anzahl der Datensätze ist mal mehr, mal weniger
2. die Spalte A ist immer gefüllt (hier gibt es innerhalb des Imports keine Leerzellen)
Nun möchte ich folgendes erreichen:
A. nach einem neuen Datenimport sollen die Formeln beginnend mit U3 gelöscht werden
B. Die Formel aus U2 soll bis zur Zeile des letzten Datensatzes in jede Zeile kopiert werden
C. alles sollte, einschließlich der Berechnung automatisch nach dem Import ablaufen
Spezial:
Gibt es auch eine Lösung für den Fall, dass in Spalte A doch mal ein Leerfeld vorkommt?
Hat von Euch jemand eine tolle Lösung für mich? Würde mich sehr freuen

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 09:36:34
Christian
Hallo,
so zB:

Option Explicit
Sub Makro()
Dim lngLR As Long
With Sheets("Tabelle1")
.Columns(21).ClearContents
lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(2, 21).FormulaR1C1 = "=KALENDERWOCHE(RC[-20],2)"
.Cells(2, 21).Resize(lngLR).FillDown
End With
End Sub
Gruuß
Christian
AW: VBA Formel kopieren und ausführen
30.01.2010 11:04:59
Andreas
Hallo Christian,
vielen Dank für Deine Antwort.
Habe das Skript mittels Editor eingefügt. Makros erlauben, eingestellt, aber es tut sich rein garnichts?!
AW: VBA Formel kopieren und ausführen
30.01.2010 11:14:19
Reinhard
Hallo Andreas,
Kalenderwoche rechnet falsch, siehe:
http://excelformeln.de/formeln.html?welcher=7
Gehe in den Editor, stelle den Curser mitten in den Code und drücke (mehrmals) F8, was tut sich?
Werden die Code zeilen nacheinader markiert und ausgeführt?
Ich hab grad kein 2003, soweit ich mich erinnere muß man da zwei Häkchen setzen bzw. entfernen für Makrozulassung.
Gruß
Reinhard
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 11:27:27
Andreas
Hi
den Rechenfehler kann ich vernachlässigen. Bei mir beginnt der 1.1.2010 in der ersten KW.
F8 habe ich gedrückt. Bis End sub. Es wurde nichts benmängelt.
Das Makro habe ich im Table 3 Worksheet einfgefügt. Dort liegen auch meine Daten.
Ein Hinweis: arbeite hier mit 2007, aber im 2003er Modus, da ich auf der Arbeit nur 2003 habe.
Gruß
Andreas
AW: VBA Formel kopieren und ausführen
30.01.2010 11:33:53
Christian
Hallo Andreas,
der Code muss in ein algemeines Modul
Den Tabellennamen im Code musst du anpassen.
Gruß
Christian
AW: VBA Formel kopieren und ausführen
30.01.2010 11:50:47
Andreas
Hier brauche ich jetzt einen Blindfluglotsen:
Meine Anzeigen:
Projekt-VBAProject (Fenster): Markiert "Tabelle3 (Produktion)
Eigenschaften-Tabelle3 (Fenster): "Tabelle3 Worksheet" (nichts geändert)
Dateiname.xls - Tabelle3 (Code) (Fenster)
oben links Pulldown: "(Allgemein)"
oben rechts Pulldown: "Formel_kopieren"
Hauptfenster: (unter "Option Explicit" ist ein Trennstrich beim Reinkopieren eingefügt worden.
Option Explicit
Sub Formel_kopieren()
Dim lngLR As Long
With Sheets("Tabelle3")
.Columns(21).ClearContents
lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(2, 21).FormulaR1C1 = "=KALENDERWOCHE(RC[-20],2)"
.Cells(2, 21).Resize(lngLR).FillDown
End With
End Sub
Das Makro wird zum Ausführen auch angezeigt. Eine Aktion ist nicht sichtbar.
Vorschlag:
Hast Du irgendein kleines Minimalskript (z.b. schreib in A1 "wahr") ohne Schnörkel? Das kann ich dann ja einmal einfügen und testen, ob der Fehler an Excel liegt.
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 12:11:43
Christian
Hallo Andreas
Im VBA Editor: Einfügen - Modul:
hier kopierst du den Code rein
Im Code anpassen:
With Sheets("Produktion")
der Rest bleibt
Das was du ins HauptFenster der Tabelle reinkopiert hast, schmießt du wieder raus.
Ein DemoScript:
Sub tt()
MsgBox "Hallo"
End Sub
Gruß
Christian
AW: VBA Formel kopieren und ausführen
30.01.2010 12:38:25
Andreas
Also,
nur die Msgbox funktioniert. Die wird angezeigt.
Habe nichts weiter reingepackt.
Im Code anpassen:
With Sheets("Produktion")
kriege ich nicht hin. Da läuft nichts. Kann es sein, dass da auch in dem anderen Skript etwas nicht ok ist?
With Sheets("Tabelle3")
Es ist Tabelle3, aber wird die auch gefunden?
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 12:42:01
Andreas
die msgbox klappt mit with sheets.
AW: VBA Formel kopieren und ausführen
30.01.2010 13:06:31
Christian
ein Bsp.

Die Datei https://www.herber.de/bbs/user/67643.xls wurde aus Datenschutzgründen gelöscht


Gruß
Christian
AW: VBA Formel kopieren und ausführen
30.01.2010 13:25:54
Andreas
Danke
habe das makro ausgeführt und wieder hochgeladen. Mit einigen Anmerkungen.
Die vorhin beschriebenen Fehler treten hier auch auf.
https://www.herber.de/bbs/user/67644.xls
AW: VBA Formel kopieren und ausführen
30.01.2010 13:36:23
Reinhard
Hallo Andreas,

Sub Makro()
Dim lngLR As Long
With Sheets("Produktion")
.Range("U2:U50000").ClearContents
lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(2, 21).Resize(lngLR - 1).FormulaR1C1 = "=KALENDERWOCHE(RC[-20],2)"
End With
End Sub

Gruß
Reinhard
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 13:43:17
Christian
Deinen Fehler "#NAME?" kann ich nicht nachvollziehen. Das AddIn "Analyse-Funktion" muss natürlich aktiviert sein.
Die Überschrift kannste ja anschließend wieder reinschreiben zb. mit:
.Cells(1, 21) = "KW"
Gruß
Christian
AW: VBA Formel kopieren und ausführen
31.01.2010 20:10:52
Andreas
Hallo Christian,
noch einmal vielen Dank für Deine Hilfe.
Morgen werde ich sehen, wie das Formatproblem sich in 2003 auswirkt.
"Analyse-Funktion" ist aktiviert.
Bis bald
Andreas
AW: VBA Formel kopieren und ausführen
30.01.2010 13:11:28
Andreas
Hi great mistake!
Das Makro wurde in dem falschen sheet ausgeführt.
Also es wird ausgeführt.
Die Spaltenüberschrift wird gelöscht
Die Formel wird ein Feld zu weit eingefügt (Datensätze + 1)
Die Formel wird nicht als Formel erkannt. Auch mit F9 neuberechnen geht nichts.
Die Formel sieht auch im Formeleditor korrekt aus. Fehlerüberprüfung: Fehlertyp #Name
Wenn ich in den Formeleditor klicke und wieder raus gehe, wird der Text als Formel erkannt.
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 12:08:32
Reinhard
Hallo Andreas,
prinzipiell kommt Standardcode in allgemeine Module (Einfügen---Modul) wie z.B. Modul1.
Du hast Standardcode. Den mußt du selbst starten.
Nun kennt Excel noch sog. Ereigniscode, das ist Code der AUTOMATISCH durchgeführt wird wenn ganz bestimmte Eriegnisse auftreten.
Doppelklicke im Editor links auf einen Blattnamen, dann wähle oben in der Mitte "worksheet" aus. Dann siehst du rechts in dem Dropdownfeld alle Ereignisse die Exce-Vba kennt.
Wähle da z.B. Change aus, der Editor schreibt dir automatisch die Prozedurhülle hin:

Private Sub Worksheet_Change(ByVal Target As Range)
End Sub

Schreib da mal
MsgBox "Huhu"
hinein.
Wenn du nun im Blatt eine beliebige Zelle abänderst kommt die Msgbox.
Du willst ja so automatischen Code.
Problem ist nur, Chnage reagiert nur auf z.B. manuelle Wertänderung einer zelle, nicht wenn sich der Zellwert durch eine Formel ändert.
Du impotierst da wohl mit Query Daten in Zellen. Jetzt weiß ich nicht auswendig ob dann das Change-Ereignis ausgelöst wird oder nicht.
Probiers einfach mal aus.
Schreibe den Code
Private Sub Worksheet_Change(ByVal Target As Range)
Msgbox "Huhu"
End Sub
im Editor in das Blattmodul, z.B. Tabelle3, dort importiere dann daten, kommt die Msgbox geht es, kommt sie nicht so geht es derart nicht das automatish hinzuzaubern.
Vielleicht ginge es dann mit dem Calculate-Ereignis...
Gruß
Reinhard
Anzeige
AW: VBA Formel kopieren und ausführen
30.01.2010 11:33:36
Andreas
Nur so ne Frage
Formel im Worksheet liegt auf: U2
Formel: =KALENDERWOCHE(A2;2)
in Deinem Skript hast Du die Zeile:
.Cells(2, 21).FormulaR1C1 = "=KALENDERWOCHE(RC[-20],2)"
Ist hier R1C1 ok?
nicht lachen. Kenne mich in VBA nicht aus. Ist nur so eine Idee
AW: VBA Formel kopieren und ausführen
30.01.2010 11:36:48
Christian
ja, R1C1 ist ok.
siehe jedoch mein letzte Antwort bzgl Modul und Tab-Name.
Gruß
Christian
AW: VBA Formel kopieren und ausführen
30.01.2010 11:09:17
Andreas
Ergänzung:
habe bei mir nur eine Offlinedatei. Somit kann ich keinen neuen Datenbestand reinholen.
Startet das Makro erst, wenn ein neuer Datenbestand reingeholt wird?

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige