Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel automatisch per Makro erzeugen

Formel automatisch per Makro erzeugen
10.03.2004 09:08:58
Olaf
Guten Morgen liebe Forumer,
ich habe ein Problem wo ich einfach nicht mehr weiter weiß und meine VBA Kenntnisse noch sehr lückenhaft sind. Im Archiv habe ich auch nichts passendes gefunden.
Ich kopiere von einer Datei (Status heute.xls) (Tabellenblatt „heute“) in eine andere Datei (Status aktuell.xls) (Tabellenblatt „aktuell“) immer eine unbestimmte Anzahl von Zeilen (die Anzahl wechselt täglich). Diese Zeilen werden in der zweiten Datei automatisch per Makro an das Ende angehängt. Kopiert werden Werte die in den Spalten A, B, C, E und H stehen. Beide Dateien stehen im gleichen Ordner.
Das Makro hierzu lautet:
Option Explicit

Sub copy_Data()
Dim wb1 As Workbook, wks1 As Worksheet
Dim wb2 As Workbook, wks2 As Worksheet
Dim wbo As String
Dim wksr1 As Long, wksr2 As Long
wbo = "E:\Status\Status aktuell.xls"
Set wb1 = ActiveWorkbook 'Datei "Status heute.xls"
Set wb2 = Workbooks.Open(wbo) 'Datei "Status aktuell.xls"
Set wks1 = wb1.Worksheets("heute")
Set wks2 = wb2.Worksheets("aktuell")
'Datenbereich der kopiert werden muss auslesen
wksr1 = wks1.Cells(65536, 1).End(xlUp).Row
wks1.Rows("2:" & wksr1).Copy Destination:=wks2.Rows(Cells(65536, 1).End(xlUp).Row + 1)
wb2.Close True
wks1.Rows("2:" & wksr1).Delete
End Sub

Jetzt soll aber automatisch beim Füllen der Zeilen in Status aktuell.xls in den Spalten D und F das Ergebnis einer Formel automatisch eingetragen werden.
In Spalte D -> =WENN(C??="";"";TEXT(C??;"TT.MM.JJJJ"))
In Spalte F -> =WENN(E??="";"";TEXT(E??;"TT.MM.JJJJ"))
?? soll für die Zeilennummer stehen
Wer kann mir mit einem Makro helfen, das die Formel immer sich auch auf die entsprechende Zeile bezieht.
Bin für jede Hilfe dankbar.
Gruß
Olaf

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel automatisch per Makro erzeugen
10.03.2004 09:31:14
TinoB
hallo olaf,
so was ähnliches brauchte ich letztens auch, und man hat mir diese lösung vorgeschlagen. ob dies nun die eleganteste ist, hm, keine ahnung, aber es funktioniert einwandfrei.

Sub Formeln()
Dim intRow As Integer
intRow = Sheets("aktuell").Cells(Rows.Count, 1).End(xlUp).Row
Range("aktuell!D1").FormulaLocal = "=WENN(C1="";"";TEXT(C1;"TT.MM.JJJJ"))"
Range("aktuell!F1").FormulaLocal = "=WENN(E1="";"";TEXT(E1;"TT.MM.JJJJ"))"
Range("aktuell!D1:F" & intRow).FillDown
Range("aktuell!D:F") = Range("aktuell!D:F").Value
End Sub

das ganze kopiert sich dann bis zur letzten gefüllten zelle der SpalteA.
Grüße
Tino
Anzeige
AW: Formel automatisch per Makro erzeugen
10.03.2004 10:37:15
Olaf
Hallo Timo,
vielen Dank aber irgendwie funktioniert das Makro nicht.
Ich habe es als neues Modul in "Status aktuell.xls" kopiert, erhalte aber immer den Fehler
" Fehler beim Kompilieren" Er markert mir die 4te und 5te Zeile an. Weißt Du Rat??
Gruß
Olaf
ja, sorry
10.03.2004 10:43:19
TinoB
hatte deine formeln so übernommen, die 4te und 5te muß so aussehen.
Range("aktuell!D1").FormulaLocal = "=WENN(C1="""";"""";TEXT(C1;""TT.MM.JJJJ""))"
Range("aktuell!F1").FormulaLocal = "=WENN(E1="""";"""";TEXT(E1;""TT.MM.JJJJ""))"
Grüße
Tino

nochmal korrigiert,
10.03.2004 10:59:22
TinoB
da die SpalteE übersprungen werden muß, ist das makro jetzt so richtig.

Sub Formeln()
Dim intRow As Integer
intRow = Sheets("aktuell").Cells(Rows.Count, 1).End(xlUp).Row
Range("aktuell!D1").FormulaLocal = "=WENN(C1="""";"""";TEXT(C1;""TT.MM.JJJJ""))"
Range("aktuell!D1:D" & intRow).FillDown
Range("aktuell!D:D") = Range("aktuell!D:D").Value
Range("aktuell!F1").FormulaLocal = "=WENN(E1="""";"""";TEXT(E1;""TT.MM.JJJJ""))"
Range("aktuell!F1:F" & intRow).FillDown
Range("aktuell!F:F") = Range("aktuell!F:F").Value
End Sub

Grüße
Tino
Anzeige
AW: nochmal korrigiert, DANKE DANKE
10.03.2004 11:06:31
Olaf
Hi Timo,
vielen Dan für Deine Mühe, es klappt jetzt einwandfrei. Damit erleichtere ich mir viel Arbeit.
Danke und Gruß Olaf
Danke für die Rückmeldung (o.T.)
10.03.2004 11:14:24
TinoB
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige