Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1320to1324
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 Code gesucht

VBA Code gesucht
01.07.2013 09:19:32
Tom
Hallo,
ich versuchte ein bestehendes Makro umzuschreiben um die Funktion siehe Beispieldatei

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

zu realisieren.
Klappte leider mal gar nicht, deswegen Makro auch komplett weg gelassen :-(
Bitte um Hilfe!
Gruß Tom

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

Betreff
Datum
Anwender
Anzeige
AW: Ohne VBA
01.07.2013 09:38:48
Tom
Hallo,
danke für die Lösungsmöglichkeit kann ich für eine andere Sache grade gut gebrauchen. In diesem Fall benötige ich jedoch eine VBA Lösung, da noch weitere Dinge davor und danach per VBA ausgeführt werden/sollen.
Gruß Tom

AW: mit VBA
01.07.2013 09:54:22
hary
Moin Tom
Dim i As Long
Dim a As Variant
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = Worksheets("zusammen")
Set wksZ = Worksheets("woche")
For i = 7 To wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row Step 5
a = Application.Match(wksZ.Cells(i, 1), wksQ.Columns(1), 0)
If IsNumeric(a) Then
wksZ.Cells(i, 3).Resize(5, 3).ClearContents
wksZ.Cells(i, 3).Resize(5, 3).Value = wksQ.Cells(a, 3).Resize(5, 3).Value
Else
MsgBox "nicht vorhanden"
End If
Next
Set wksQ = Nothing
Set wksZ = Nothing

gruss hary

Anzeige
Formel zu VBA
01.07.2013 10:05:14
Klaus
Hallo Tom,
davon ab das hary dir jetzt schon eine Lösung gegeben hat:
Wenn du eine Formellösung bereits hast aber eine VBA-Lösung brauchst, dann kannst du immer folgendes machen:
1) die Formeln per VBA in die Zellen schreiben
2) neuberechnen (falls das nicht automatisch passiert)
3) die Zelleninhalte mit .copy : .pastespecial xlpastevalues in Werte verwandeln.
zu 1: Die genaue Formel gibt es immer sehr einfach ins VBA: Makrorekorder an, Zelle selektieren, F2, Enter, Makrorekorder aus.
Grüße,
Klaus M.vdT.

AW: Formel zu VBA
01.07.2013 10:14:15
Tom
Danke euch beiden
@Klaus das wußte ich bislang nicht, werde ich testen

Anzeige
AW: Formel zu VBA
01.07.2013 10:44:26
Klaus
Hi Tom,
mal ein Beispiel. Das "Macro1" ist einfach ein Rekordercode. Das Makro PerVBAbitte() ist nur leicht umgeschriebener Rekordercode. Im "Width" siehst du die Zellen-Referenzierung, den RekorderCode für "Kopieren, dann Inhalte einfügen" habe ich getauscht gegen die kürzere VBA-Variante ".value = .value", die das gleiche erledigt. Du siehst, in Summe sind das nur ein halbes dutzend Zeilen VBA.
Option Explicit
'so sieht das aufgezeichnete Makro aus
Sub Macro1()
' Macro1 Macro
Range("C7").Select
ActiveCell.FormulaR1C1 = _
"=INDEX(zusammen!C,MATCH(RC1,zusammen!C1,)-1+IF(MOD(ROW(R[-6]C1),5)=0,5,MOD(ROW(R[-6]C1) _
,5)))"
Range("C7").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C8").Select
End Sub
'Unsere Formel-zu-Makro-Variante in ganz einfach:
Sub PerVBAbitte()
With Sheets("woche").Range("C7:E22") '**** Bereichs-Angabe
.FormulaR1C1 = "=INDEX(zusammen!C,MATCH(RC1,zusammen!C1,)-1+IF(MOD(ROW(R[-6]C1),5)=0,5,MOD( _
ROW(R[-6]C1),5)))"     '**** die Formel aus dem Makrorekorder von oben
ActiveSheet.Calculate '**** berechnen der Formeln erzwingen - kann auch wegfallen, wenn du  _
Berechnungen auf automatisch hast
.Value = .Value     '**** Aus den Formeln Werte machen (einfach, schnell, kurz)
End With
End Sub
Disclaimer: das ist im vergleich zu hary's sicherlich die schlechtere Lösung, um die beschriebene Aufgabe zu lösen. Dies soll nur zeigen, wie einfach sich eine Formellösung in VBA übertragen lässt.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige