Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
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

Makro in bestimmten Spalten ausführen

Makro in bestimmten Spalten ausführen
08.01.2015 12:23:11
Sebasté
Halli Hallo...
Ich möchte mich erstmal kurz vorstellen. Meine Name ist Sebastian und ich bin momentan mit meiner Abschlussarbeit für mein Studium beschäftigt.
Die Abschlussarbeit befasst sich mit dem Auswerten von Daten einer wärmetechnischen Anlage -> Monitoring.
Zur Zeit stehe ich leider ein wenig auf dem Schlauch bezüglich der Umsetzung in VBA. Ich hoffe, dass mir hier geholfen werden kann.
Aber nun zu meinem Problem:
Ein bestimmter Code soll in gewissen Spalten ausgeführt werden.
Der Code lautet beispielhaft für die Spalte D:

Sub
Dim Inglast as Long
Inglast = Cells(Rows.Count, 3)End(xlUp).Row
Range("D10").Select
ActiveCell.Formula = "RC[-2]+ RC[-1]"
Range("D10").AutofillDestination:= Range("D10:D" & Inglast)
End Sub

Dabei werden in der Spalte D, angefangen ab Zeile 10 die Werte der beiden Zellen B10 + C10 addiert und in Zelle D10 geschrieben. Es handelt sich hierbei um eine Datums-(Spalte B) und Uhrzeitangabe(Spalte C). Danach wird mit Autofill die Spalte D bis zum letzten Wert der Spalte C gefüllt. Die Spalte D durchläuft eine bedingte Formatierung die einen Vergleich zwischen Spalte D und Spalte A durchführt und mir keine doppelten Werte anzeigt. In Spalte A wurde zuvor eine Datums- und Uhrzeitreihe generiert. Der Sinn dahinter ist, dass man fehlende Messwerte identifizieren kann. Die generierte Datums-/Uhrzeitreihe ist dabei lückenlos. Die Messwerte aus Spalte B + C jedoch ggf nicht. Die Messwerte liegen in der Form "dd.mm.yy" in Spalte B und "hh:mm" in Spalte C vor und zusammengeführt "dd.mm.yy hh:mm" in Spalte A und D.
Wie kann ich nun lösen, dass dieses Makro alle vier Spalten, angefangen ab Spalte D, durchläuft? Meine Momentane Lösung beinhaltet leider 25 Makros, da es sich um 25 Messwerte handelt. Irgendwie bekomm ich die Schleife dafür nicht hin.
Wenn ich mich undeutlich ausgedrückt habe, bitte ich um eine kleine Rückmeldung. Vielleicht kann ich noch etwas genauer werden :)
Grüße Sebasté

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro in bestimmten Spalten ausführen
08.01.2015 12:42:20
Rudi
Hallo,
1. ohne Select und AutoFill:
Sub aaa()
Dim Inglast as Long
Range("D10:D" & Inglast).Formula = "RC[-2]+ RC[-1]"
End Sub
Die Frage verstehe ich nicht.
Gruß
Rudi

Du hast "inglast = cells..." vergessen, ...
08.01.2015 12:52:25
Klaus
... Rudi, woher soll er da die letzte Zeile kennen?
Du meintest bestimmt diese Verkürzung:
Sub test3()
Range("D10:D" & Cells(Rows.Count, 3).End(xlUp).Row).FormulaR1C1 = "=RC[-2]+ RC[-1]"
End Sub
Grüße,
Klaus M.vdT.

AW: Du hast "inglast = cells..." vergessen, ...
08.01.2015 13:06:24
Rudi
Hallo,
da hast du Recht.
Gruß
Rudi

Anzeige
AW: Makro in bestimmten Spalten ausführen
08.01.2015 13:01:34
Sebasté
Hallo Rudi,
erstmal vielen dank für die erste Antwort.
Ich versuche mein Problem zu spezifizieren:
Es geht um das Finden fehlender Messwerte aus einem Datensatz. Die Daten liegen in den zuvor genannten Formaten vor: "dd.mm.yy" und "hh:mm". Problematisch ist, dass ggf Messwerte aufgrund von einer zusammengebrochenen Datenverbindung oder durch den Ausfall eines Messgerätes fehlen können. Leider bekomme ich dann in meinem Datensatz "Sprünge" zwischen den einzelnen Zellen, z.B. "16.12.14 0:00" und als nächster Wert "16.12.14 0:45". Die Werte werden im 15min Schritten aufgezeichnet, ergo fehlen zwei Messwerte. Das ganze wird problematisch wegen der angehängten Auswertung, welche für zuverlässige Ergebnisse einen lückenlosen Datensatz benötigt. Daher war mein Ansatz eine Datums-/Uhrzeitreihe zu generieren die danach mit den Messwerten verglichen wird und mir anzeigt welche Werte nicht vorhanden sind um sie dann danach zu ergänzen.
Die Tabelle hat folgenden Aufbau:
Für den erstem Messwert
Spalte A: generierte Reihe
Spalte B: Datum
Spalte C: Uhrzeit
Spalte D: Datum + Uhrzeit
Die Werte aus B und C kommen aus einer csv Datei und werden in die "Vergleichstabelle" kopiert.
Für den zweiten Messwert
Spalte E: generierte Reihe
Spalte F: Datum
Spalte G: Uhrzeit
Spalte H: Datum + Uhrzeit
usw.
Das ganze leider 25 mal. Heisst im Klartext: Das Makro muss 25 mal ausgeführt werden und mir ab Spalte D, danach H, etc. die Spalten mit der Formel füllen. Die bedingte Formatierung stellt dann einen Vergleich zwischen Spalte A und D her und zeigt mir in Spalte A, welche Werte aus Spalte D nicht vorhanden sind. Das ganze dann auch für Spalte E und H usw.
Hoffe, das war verständlicher...
Grüße

Anzeige
AW: Makro in bestimmten Spalten ausführen
08.01.2015 13:13:29
Rudi
Hallo,
jetzt ist's klar.
Sub FormelRein()
Dim i As Integer
For i = 3 To 99 Step 4
Range(Cells(10, i), Cells(Rows.Count, i).End(xlUp)).Offset(, 1).Formula = _
"=RC[-1]+RC[-2]"
Next
End Sub
Gruß
Rudi

AW: Makro in bestimmten Spalten ausführen
08.01.2015 13:49:02
Sebasté
Super!!! Funktioniert wie gewünscht!
Danke Rudi

AW: Makro in bestimmten Spalten ausführen
08.01.2015 12:50:44
Klaus
Hi,
ich mache mal ganz langsam:
'Dein Makro wie du es gepostet hast:
'Sub
'Dim Inglast As Long
'Inglast = Cells(Rows.Count, 3)End(xlUp).Row
'Range("D10").Select
'ActiveCell.Formula = "RC[-2]+ RC[-1]"
'Range("D10").AutofillDestination:= Range("D10:D" & Inglast)
'End Sub
'Beseitigung diverser !!! Syntaxfehler in deinem Makro
Sub test2()
Dim Inglast As Long
Inglast = Cells(Rows.Count, 3).End(xlUp).Row
Range("D10").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+ RC[-1]"
Range("D10").AutoFill Destination:=Range("D10:D" & Inglast)
End Sub
'erste Optimierung - entfernen von SELECT und AUTOFILL
Sub test3()
Dim Inglast As Long
Inglast = Cells(Rows.Count, 3).End(xlUp).Row
Range("D10:D" & Inglast).FormulaR1C1 = "=RC[-2]+ RC[-1]"
End Sub
Den dritten Code jetzt in X Spalten anzuwenden ist die leichteste Übung! Aber ich bezweifele, dass in jeder Spalte die gleiche Formel stehen soll? Eine Musterdatei wäre angebracht.
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro in bestimmten Spalten ausführen
08.01.2015 13:17:51
Sebasté
Hallo Klaus...
Vielen Dank auch erstmal an dich für die kleinen Korrekturen. Ich habe eben an Rudi eine kleine Erläuterung geschrieben.
Tatsächlich sollen in den x Spalten immer die gleiche Formel stehen.
Eine Beispieldatei kann ich gleich mal versuchen zu generieren, da die aktuelle in ein Excel Sheet mit über 100mb Größe integriert ist. Würde zur Verdeutlichung auch ein Screenshot der Tabelle reichen?

AW: Makro in bestimmten Spalten ausführen
08.01.2015 13:32:12
Klaus
Würde zur Verdeutlichung auch ein Screenshot der Tabelle reichen?
Nein :-)
Du willst die (Gratis-) Hilfe, also mach dir die Mühe eine verwertbare Musterdatei zu fabrizieren! Das ist das mindeste.
Rudi hat dir bereits eine Lösung gezeigt. Ich bezweifele allerdings, dass du in jeder Spalte die gleiche Formel haben willst.
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro in bestimmten Spalten ausführen
08.01.2015 13:47:18
Sebasté
Hi Klaus....
Kein Problem! Ich setz mich gleich dran, sollte ca 15 - 20 min dauern. Für Gratis-Hilfe mach ich das doch glatt.
Die Lösung von Rudi führt schon einmal zum gewünschten Ergebnis. Vielen vielen Dank dafür!!!
Trotzdem werde ich noch mal was hochladen. Vielleicht gibt's ja noch einen anderen Weg nach Rom :-)
Danke im Voraus für die Mühe, die ihr euch macht....

Musst dir die Mühe nicht machen! Aber danke ...
08.01.2015 14:01:35
Klaus
... für die Rückmeldung.
Wenn Rudi's Lösung bereits die richtige ist, sähe meine Lösung sehr ähnlich aus.
Grüße,
Klaus M.vdT.

AW: Musst dir die Mühe nicht machen! Aber danke ...
08.01.2015 14:19:43
Sebasté
Ok!
Eine letzte Frage zum Schluß:
Gibt es hier im Forum die Möglichkeit Beiträge/Member zu bewerten?
Grüße

Anzeige
+1 / LIKE / respect
08.01.2015 14:26:21
Klaus
Hi,
nein - es gibt hier keine Likes, und auch keine +1, keinen Userscore oder sonstiges. Und das ist auch gut so, schließlich ist das hier nicht das Pokemon-Forum :-) Mache einfach einen neuen Eintrag, in dem "vielen Dank für die Hilfe!" steht.
Grüße,
Klaus M.vdT.

AW: +1 / LIKE / respect
08.01.2015 14:31:56
Sebasté
Das Pokemon-Forum... Herrlich...
Dann mal offiziell:
Vielen Dank für deine Hilfe, Klaus! (und natürlich auch nochmal Rudi)
Wünsch euch noch 'nen schönen Tag!
Grüße Sebastian

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige