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 in variable zeile eintragen

Formel in variable zeile eintragen
11.03.2004 11:38:03
Stefan
hallo ihr lieben excelhelfer, hab da mal wieder ein kniffliges problem!
habe mit hilfe von christoph (danke nochmal) folgendes makro erstellt
mein problem ist nur, das ich nicht weiß ob die erste formel wirklich in c1 eingetragen werden darf. wie kann ich es machen, das die formel in spalte c dort eingetragen wird, wo in spalte b auch die erste zahl steht?
beispiel, wenn in der erste wert in celle b5 steht, dann muß die formel in c5 eingetragen werden
vielen dank für eure hilfe

Sub Formel()
Dim letzteR As Integer
Dim i As Integer
Selection.SpecialCells(xlLastCell).Select
letzteR = ActiveCell.Row
Range("A1").Select
Do
If ActiveCell.Value = "*" Then
i = ActiveCell.Row
lz = [a65536].End(xlUp).Row
[c1] = "=IF(B" & 1 & "="""","""",if(B" & 1 & "=" & 0 & ","""",_
if($B$" & i & "="""","""",if($B$" & i & "=" & 0 & ","""",_
B" & 1 & "/$B$" & i & "))))"
[c1].AutoFill Destination:=Range("C1:C" & lz), Type:=0
Range("C1:C" & lz).Select
Selection.NumberFormat = "0.0%"
End If
ActiveCell.Offset(1, 0).Select
Loop While ActiveCell.Row kleiner= letzteR
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in variable zeile eintragen
11.03.2004 14:35:16
Christoph
Hallo Stefan,
So ganz steig ich bei deinem Code nicht durch.
Du kannst mit einer For-Schleife die Spalte B durchlaufen und so nach dem ersten Eintrag suchen.
For j = 1 To lz
If Cells(j, 2).Value <> "" Then 'erster Eintrag in Spalte B gefunden
'hier deine Formel
Exit For 'wenn du nur für diese Zeile j die Formel eintragen willst, dann
'mit "Exit For" die Schleife verlassen. Sonst lässt du das "Exit For" weg
End If
Next j
Gruß
Christoph
PS:
"WENN(B1="";"";WENN(B1=0;"";..." wird übersichtlicher mit: "WENN(ODER(B1="";B1=0);"";..."
Anzeige
AW: Formel in variable zeile eintragen
11.03.2004 15:53:00
Stefan
habs jetzt mal so gemacht
da ist aber das problem, das es nicht bei dem letzten wert aufhört sondern bei der spalte mit dem *.
hab mal eine datei hochgeladen. so sollte es irgendwann aussehen!
https://www.herber.de/bbs/user/4212.xls
dank dir für die hilfe
gruß stefan

Sub Formel()
Dim letzteR As Integer
Dim i As Integer
Selection.SpecialCells(xlLastCell).Select
letzteR = ActiveCell.Row
Range("A1").Select
Do
If ActiveCell.Value = "*" Then
i = ActiveCell.Row
lz = [a65536].End(xlUp).Row
For j = 1 To lz
If Cells(j, 2).Value kleinergrößer "" Then
[c1] = "=IF(B" & 1 & "="""","""",if(B" & 1 & "=" & 0 & ","""",if($B$" & i & "="""","""",if($B$" & i & "=" & 0 & ","""",B" & 1 & "/$B$" & i & "))))"
[c1].AutoFill Destination:=Range("C1:C" & lz), Type:=0
End If
Next j
Range("C1:C" & lz).Select
Selection.NumberFormat = "0.0%"
End If
ActiveCell.Offset(1, 0).Select
Loop While ActiveCell.Row kleiner= letzteR
End Sub

Anzeige
AW: Formel in variable zeile eintragen
11.03.2004 19:35:50
Christoph
Hallo Stefan,
ich hab jetzt die Loop-Schleife auch durch eine For-Schleife ersetzt.
Das ist Geschmacksache - ich komm mit "For" in solchen Sachen besser klar,
weil ich gerne einfach denke. (Programmierer mögen da vielleicht eine andere Auffassung haben -keine Ahnung)
Beim Wechsel von Spalte A auf Spalte B musst du die letzte Zeile natürlich neu bestimmen, sonst rechnest du ja mit der letzten Zeile aus Spalte A weiter.
Prinzipiell könnte das also so aussehen:
Gruß
Christoph


Sub Formel1()
Dim letzteR As Long
Dim i As Long, j As Long
letzteR = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To letzteR
If Cells(i, 1).Value = "*" Then
letzteR = Cells(Rows.Count, 2).End(xlUp).Row
For j = 1 To letzteR
If Cells(j, 2).Value <> "" Then
Cells(j, 3) = _
"=IF(B" & j & "="""","""",IF(B" & j & "=" & 0 & ",""""," & _
"IF($B$" & i & "="""","""",IF($B$" & i & "=" & 0 & ",""""," & _
"B" & j & "/$B$" & i & "))))"
Exit For
End If
Next j
Range("C" & j).AutoFill Destination:=Range("C" & j & ":C" & letzteR), Type:=0
Range("C1:C" & letzteR).NumberFormat = "0.0%"
Exit For
End If
Next i
End Sub

Anzeige
Einfach ist sehr gut!
12.03.2004 10:00:16
Stefan
hallo christoph,
das makro funktioniert super, da ich kein programmierer bin ist mir einfacher auch lieber. du bist ein sehr patentes kerlchen und deshalb hätte ich da noch ein anliegen. kannst du dir mal die hochgeladene datei ansehen und mir sagen ob du dafür evtl auch eine lösung weißt! https://www.herber.de/bbs/user/4240.xls
es handelt sich um teilergebnisse, die je nach materialtiefe eingetragen werden müssen. wenn nicht ist auch nicht schlimm. tausend dank für deine hilfe
gruß stefan
Danke für die Rückmeldung
12.03.2004 10:39:35
Christoph
Hi Stefan,
freut mich. dir geholfen zu haben.
Was du genau bei der neuen Tabelle willst, ist mir nicht so ganz klar.
Ich vermute mal, die willst die Funktionen "=TEILERGEBNIS" automatisch einfügen lassen.
Wenn dem so ist, dann funktioniert das nach genau dem selben Schema.
Durchlaufe mit einem Zähler (i oder j, oder ...) die einzelnen Spalten und lass den Zähler bei einem bestimmten Ereignis stoppen (mit "Exit For"). So ein Ereignis kann z.B. sein: in einer Zelle steht ein bestimmter Begriff, oder die Zelle hat eine andere Farbe als jene zuvor oder danach, oder, oder, oder.
(das mit den Farben funktioniert z.B. nicht bei "Klimaanlage" und "Sportsitze")
Gruß
Christoph Meffert
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige