Formel in Zellen schreiben mit VBA

Hallo,

momentan werden die einzelnen Werte in einen String zusammengefasst und in eine Zelle geschrieben.

Ich will aber nun das gleiche mit einer Formel erreichen, die ich in VBA vorgebe und wo die Werte auch übernommen werden.

Ziel ist es das der Benutzer eine weitere Zeile einfügen kann und die Werte(Formatierung) „nachziehen“ kann. Dies ist mit dem momentanen Programm nicht möglich.

Mein bisheriges Programm bei dem die Werte übernmommen wurden:

Dim a As String
Dim var As String
If spalten

Hallo,

geht es in erster Linie darum eine neue Zeile zu erstellen, oder die Ergebniszelle zu berechnen?
Am einfachsten ist es wahrscheinlich mit einer Schaltfläche die bei klick deinen code ausführt.
Arbeitest du mit Formularen oder im Excel-Sheet?

L.G. namina

es geht in erster Line darum die Ergebniszeile zu berechnen.

In dem Fall würde ich eine Schaltfläche einbauen und deinen Code darunter legen.
Allerdings musst du dann noch die Zeile finden, in der der String geschrieben werden soll:
Entweder immer die letzte Zeile in der etwas steht, oder die aktive Zeile (in der der cursor gerade steht), oder du schreibst alle zeilen neu.
Das kommt halt ganz auf die Größe der Datei und die Menge der änderungen an.
Je nach Größe der Datei empfiehlt es sich die Schaltfläche in eine Menüleiste einzubauen, damit sie auf jeder Seite sichtbar ist.

es geht in erster Line darum die Ergebniszeile zu berechnen.

Leider verstehe ich nicht, was Du wirklich machen willst. Und ein unkommentierter Code hilft da wenig.
Normalerweise kann man über „Fomat“ „Zellen“ jede Formatierung vorgeben, dazu braucht man kein VBA

Gruß
Amtsschimmel

Hallo,

leider verstehe ich nicht, was Dein eigentliches Ziel ist.
Was soll der Benutzer wo eingeben? Was soll mit der Eingabe
geschehen? Ich kann Dir natürlich helfen, aber bitte gib
mir Deine Wünsche genauer bekannt, vielleicht gleich mit
einem kurzen Beispiel.
g.s.

Hi,

sorry, falsche Baustelle.
Ich kann Dir nur was zu VBA im Zusammenhang mit Access sagen.

Gruß
Karsten

Hi,

für das „Nachziehen“ der Formate habe ich dor ein kleines Makro angefertigt. Hier kannst du eines von den drei Varianten (Festgelegter Bereich, einzelne Zelle oder komplette Zeile) aussuchen. Dieses Makro MUSS im selben Codebereich des Tabellenblatt stehen, in dem es benötigt wird.

CODE:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Then Exit Sub
Application.EnableEvents = False
Application.ScreenUpdating = False

'Formate eines festgelegen Bereiches (zB.Spalte 5-7) kopieren
Range(Cells(Target.Row - 1, 5), Cells(Target.Row - 1, 7)).Copy 'Kopieren der vorherigen ZEILE
Range(Cells(Target.Row, 5), Cells(Target.Row, 7)).PasteSpecial xlPasteFormats 'nur Formate in die aktuelle Zeile einfügen

'Formate nur aktuelle Spalte kopieren
Cells(Target.Row - 1, Target.Column).Copy 'Kopieren der vorherigen ZELLE
Cells(Target.Row, Target.Column).PasteSpecial xlPasteFormats 'nur Formate in die aktuelle Zelle einfügen

'Formate der gesamten Zeile kopieren
Rows(Target.Row - 1).Copy
Rows(Target.Row).PasteSpecial xlPasteFormats

Range(Cells(Target.Row + 1, Target.Column).Address).Select 'aktuelle Zelle auswählen
Application.CutCopyMode = False 'Kopierrahmen entfernen
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Was du mit deinem Makro erreichen willst ist mir noch nicht klar. Die Zellenformel, die dein Makro erreicht sieht so aus (Formel in Zelle G1):

=GANZZAHL(E1)&WENN(E1=GANZZAHL(E1);",000";TEIL(E1-GANZZAHL(E1)&„000“;2;4))&" / „&GANZZAHL(F1)&WENN(F1=GANZZAHL(F1);“,000";TEIL(E1-GANZZAHL(F1)&„000“;2;4))&" / „&GANZZAHL(G1)&WENN(G1=GANZZAHL(G1);“,000";TEIL(E1-GANZZAHL(G1)&„000“;2;4))

Ist damit dein Problem gelöst?

Andreas

Hi, danke für die Hilfe, das Problem wurde gelöst :wink:
Grüße

„Eine in VBA vorgeschriebene Formel“ - minst du, du möchtest dafür eine Function erstellen?
Mir ist deine Frage leider nicht wirklich klar …

lg