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

Formel in FormulaLocal umsetzen

Formel in FormulaLocal umsetzen
29.05.2013 07:20:31
Erwin
Guten Morgen,
durch die Hilfe des Forums habe ich folgenden Code erhalten, den ich erweitern möchte:
Option Explicit
Sub Leerzelle2()
Dim RnG As Range
Dim Loletzte&, x&, j&
Loletzte = Range("EndeBereich").Row - 1      'im Namensnanager definiert = ok
For j = 11 To 19                             '11 = Spalte K ok               19 = Spalte S = ok
If j = 12 Then j = 16                      '12 = keine Ahnung warum        16 = Spalte P = ok
If j = 17 Then j = 18                      '17 = keine Ahnung warum        18 = Spalte S = ok
For x = 7 To Loletzte                       'ab Zeile 7 wird geprüft
If IsEmpty(Cells(x, j)) Then               'wenn Zelle leer, dann folgende Formel eintragen
'=WENN(J17="";"";WENN(J17=System!$R$6;"nein";"Fehler")))
If j = 11 Then Cells(x, j).FormulaLocal = "=WENN(" & Cells(x, j - 1).Address(0, 0) _
& "="""";"""";WENN(" & Cells(x, j - 1).Address(0, 0) _
& "=System!$R$6;""nein"";""Fehler"")))"
'=WENN(N17="";"";WENN(O17="";N17;N17-O17))
If j = 16 Then Cells(x, j).FormulaLocal = "=WENN(" & Cells(x, j - 2).Address(0, 0) _
& "="""";"""";wenn(" & Cells(x, j - 1).Address(0, 0) _
& "="""";(" & Cells(x, j - 2).Address(0, 0) & ";""...""))" '  _
vbYes Then Exit Sub
End If
Next
Next
End Sub
Bist zur Spalte 11 (=Spalte K) funktioniert alles.
In Spalte 16 (=Spalte P) und in Spalte 18 (=Spalte R) sollen noch die Formeln eingefügt werden.
Aber ich verzweifle; habe ich es falsch verbunden oder fehlen Hochkomme, keine Ahnung!
Wer kann mir hier weiterhelfen?
Grüße
Erwin

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in FormulaLocal umsetzen
29.05.2013 07:27:52
Hajo_Zi
Hallo Erwin,
Klammern sollte man schon korrekt.
If j = 16 Then Cells(x, j).FormulaLocal = "=WENN(" & Cells(x, j - 2).Address(0, 0) _
& "="""";"""";wenn(" & Cells(x, j - 1).Address(0, 0) _
& "="""";" & Cells(x, j - 2).Address(0, 0) & ";""...""))"

so gehts ...
29.05.2013 07:49:18
Matthias
Hallo
Warum bleibst Du denn nicht im alten Beitrag?
https://www.herber.de/forum/messages/1315035.html
If j = 16 Then Cells(x, j).FormulaLocal = "=WENN(" & Cells(x, j - 2).Address(0, 0) & "="""";"""";WENN(" & Cells(x, j - 1).Address(0, 0) & "="""";" & Cells(x, j - 2).Address(0, 0) & ";" & Cells(x, j - 2).Address(0, 0) & "-" & Cells(x, j - 1).Address(0, 0) & "))"
https://www.herber.de/bbs/user/85567.xlsm
Gruß Matthias

Anzeige
AW: so gehts ... Danke
29.05.2013 23:59:45
Erwin
Guten Abend,
komme erst jetzt wieder an den Rechner uns sage hiermit allen Helfern vielen Dank für die Unterstützung.
Erwin

AW: so gehts ... Danke
29.05.2013 23:59:56
Erwin
Guten Abend,
komme erst jetzt wieder an den Rechner uns sage hiermit allen Helfern vielen Dank für die Unterstützung.
Erwin

AW: so gehts ... Danke
30.05.2013 00:00:24
Erwin
Guten Abend,
komme erst jetzt wieder an den Rechner uns sage hiermit allen Helfern vielen Dank für die Unterstützung.
Erwin

Hast Du es denn für Spalte 18 selbst geschafft ?
30.05.2013 00:10:38
Matthias
Hallo Erwin
Hast Du es denn für Spalte 18 selbst geschafft ?
& Danke für Deine Rückmeldung.
Gruß Matthias

AW: Hast Du es denn für Spalte 18 selbst geschafft ?
30.05.2013 19:49:18
Erwin
Hallo Matthias,
ja, das habe ich; ich brauche halt etwas länger :( verstanden habe ich die Programmierung jetzt auch.
Was mir noch nicht so ganz in den Kopf geht ist folgendes:
Für was brauche ich die Spalten 12 und 17?

For j = 11 To 19                             '11 = Spalte K und             19 = Spalte S = ok
If j = 12 Then j = 16                      '12 = keine Ahnung warum       16 = Spalte P = ok
If j = 17 Then j = 18                      '17 = keine Ahnung warum       18 = Spalte S = ok
For x = 7 To Loletzte                       'ab Zeile 7 wird geprüft
If IsEmpty(Cells(x, j)) Then              'wenn Zelle leer, dann

Grüße - Erwin

Anzeige
Erklärung
31.05.2013 00:53:05
Matthias
Hallo Erwin
Du hättest Franz seinen Vorschlag genauso benutzen können.
         Select Case Spalte
Case 11 'K
'Formel Spalte K
Case 16 'P
'Formel Spalte P
Case 18 'R
'Formel Spalte R
End Select
Das ist so auch besser!
Nun hatte ich Dir aber eben schon die Schleife vorgeschlagen
For j = 11 To 19
If j = 12 Then j = 16
If j = 17 Then j = 18
Diese Schleife geht also von Spalte(11) bis Spalte(19)
Da Du aber nur die Spalten (11, 16, 18) brauchst um die Formeln einzutragen soll Excel
die Spalten dazwischen (12,13,14,15) nicht beachten. Deshalb If j = 12 Then j = 16
Heißt also wenn die Spalte(11) abgearbeitet ist würde die Variable(j) den nächsten Wert erhalten
also 12. Doch Spalte(12) soll Excel ignorieren, ganauso 13,14 und 15.
Erst in Spalte(16) soll Excel wieder die fehlenden Formeln eintragen.
Deshalb setzte ich die Variable(j) auf 16 sobald sie den Wert(12) hat.
Ich hoffe ich konnte das einigernaßen rüberbringen.
Gruß Matthias

Anzeige
AW: Erklärung - verstanden
31.05.2013 20:55:32
Erwin
Hallo Matthias,
solche Erklärungen sind super, jetzt habe ich es auch verstanden.
Durch dieses If ... Then ... überspringt der Code die Spalten und macht gleich in Spalte 16 weiter.
Grüße
Erwin

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige