Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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 mit Makro Aktualisieren

Formel mit Makro Aktualisieren
14.05.2021 10:15:18
oraculix
Hallo
Ich habe eine Formel in Zeile1 die einen Fehler verursacht wenn irgendwas schief läuft.
Dann steht " Wert " drinnen. Wenn ich jetzt die Formel Anklicke und Enter drücke dann funktioniert sie wieder.
Da ich viele Felder in der ersten Zeile habe und immer wieder neue dazukommen ist das von Hand sehr Mühsam. Daher habe ich ein Makro aufgezeichnet das die 1 Zeile Aktualisiert.
Da beginnt das Problem ich muss das Makro per Hand immer erweitern wenn neue Einträge in Zeile 1 vorhanden sind.
Frage : Kann ich das irgendwie Pauschal lösen das es das das Makro bis unendlich in der ersten Zeile funktioniert zb (a1:hf1)

Sub WertEnter()
'Formel Aktualisieren
Application.ScreenUpdating = True
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=""Harrison Ford ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("B1").Select
ActiveCell.FormulaR1C1 = _
"=""Tom Cruise  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("C1").Select
ActiveCell.FormulaR1C1 = _
"=""Denzel Washington ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("D1").Select
ActiveCell.FormulaR1C1 = _
"=""Robert De Niro   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("E1").Select
ActiveCell.FormulaR1C1 = _
"=""Tom Hanks   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("F1").Select
ActiveCell.FormulaR1C1 = _
"=""Clint Eastwood   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("G1").Select
ActiveCell.FormulaR1C1 = _
"=""Jack Nicholson   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("H1").Select
ActiveCell.FormulaR1C1 = _
"=""Bruce Willis   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("I1").Select
ActiveCell.FormulaR1C1 = _
"=""Brad Pit    ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("J1").Select
ActiveCell.FormulaR1C1 = _
"=""Liam Neeson   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("K1").Select
ActiveCell.FormulaR1C1 = _
"=""Leonardo De Caprio    ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("L1").Select
ActiveCell.FormulaR1C1 = _
"=""Sean Connery   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("M1").Select
ActiveCell.FormulaR1C1 = _
"=""Ben Kingsley   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("N1").Select
ActiveCell.FormulaR1C1 = _
"=""Anthony Hopkins  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("O1").Select
ActiveCell.FormulaR1C1 = _
"=""Matt Damon  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("P1").Select
ActiveCell.FormulaR1C1 = _
"=""Kevin Costner  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("Q1").Select
ActiveCell.FormulaR1C1 = _
"=""George Clooney   ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("R1").Select
ActiveCell.FormulaR1C1 = _
"=""Russell Crowe ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("S1").Select
ActiveCell.FormulaR1C1 = _
"=""Richard Gere ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("T1").Select
ActiveCell.FormulaR1C1 = _
"=""Michael Douglas ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("U1").Select
ActiveCell.FormulaR1C1 = _
"=""Mel Gibson  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("V1").Select
ActiveCell.FormulaR1C1 = _
"=""Edward Norton ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("W1").Select
ActiveCell.FormulaR1C1 = _
"=""Johnny Depp ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("X1").Select
ActiveCell.FormulaR1C1 = _
"=""Morgan Freeman ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("Y1").Select
ActiveCell.FormulaR1C1 = _
"=""Sylvester Stallone ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("Z1").Select
ActiveCell.FormulaR1C1 = _
"=""Nicolas Cage  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AA1").Select
ActiveCell.FormulaR1C1 = _
"=""Jodie Foster ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AB1").Select
ActiveCell.FormulaR1C1 = _
"=""Sandra Bullock ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AC1").Select
ActiveCell.FormulaR1C1 = _
"=""Julia Roberts ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AD1").Select
ActiveCell.FormulaR1C1 = _
"=""Michelle Pfeiffer ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AE1").Select
ActiveCell.FormulaR1C1 = _
"=""Nicole Kidman ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AF1").Select
ActiveCell.FormulaR1C1 = _
"=""Amy Adams ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AG1").Select
ActiveCell.FormulaR1C1 = _
"=""Anne Hathaway ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AH1").Select
ActiveCell.FormulaR1C1 = _
"=""Ray Liotta ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AI1").Select
ActiveCell.FormulaR1C1 = _
"=""Cameron Diaz ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AJ1").Select
ActiveCell.FormulaR1C1 = _
"=""Jennifer Lawrence ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AK1").Select
ActiveCell.FormulaR1C1 = _
"=""Scarlett Johansson ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AL1").Select
ActiveCell.FormulaR1C1 = _
"=""Reese Witherspoon ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AM1").Select
ActiveCell.FormulaR1C1 = _
"=""Alec Baldwin ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AN1").Select
ActiveCell.FormulaR1C1 = _
"=""Kim Basinger ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AO1").Select
ActiveCell.FormulaR1C1 = _
"=""Angelina Jolie ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AP1").Select
ActiveCell.FormulaR1C1 = _
"=""Tommy Lee Jones  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AQ1").Select
ActiveCell.FormulaR1C1 = _
"=""Michael J. Fox  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AR1").Select
ActiveCell.FormulaR1C1 = _
"=""Dennis Hopper  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AS1").Select
ActiveCell.FormulaR1C1 = _
"=""Christian Bale  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AT1").Select
ActiveCell.FormulaR1C1 = _
"=""Arn Schwarzeneger ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AU1").Select
ActiveCell.FormulaR1C1 = _
"=""Danny DeVito ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AV1").Select
ActiveCell.FormulaR1C1 = _
"=""Jason Statham  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AW1").Select
ActiveCell.FormulaR1C1 = _
"=""Willem Dafoe ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AX1").Select
ActiveCell.FormulaR1C1 = _
"=""Dustin Hoffman  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AY1").Select
ActiveCell.FormulaR1C1 = _
"=""Robert Redford  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("AZ1").Select
ActiveCell.FormulaR1C1 = _
"=""Samuel L. Jackson  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BA1").Select
ActiveCell.FormulaR1C1 = _
"=""Ben Stiller  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BB1").Select
ActiveCell.FormulaR1C1 = _
"=""Dwayne Johnson  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BC1").Select
ActiveCell.FormulaR1C1 = _
"=""Vin Diesel  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BD1").Select
ActiveCell.FormulaR1C1 = _
"=""Channing Tatum  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BE1").Select
ActiveCell.FormulaR1C1 = _
"=""Mark Wahlberg ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BF1").Select
ActiveCell.FormulaR1C1 = _
"=""Robert Downey Jr. ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BG1").Select
ActiveCell.FormulaR1C1 = _
"=""Jeremy Renner  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BH1").Select
ActiveCell.FormulaR1C1 = _
"=""Bradley Cooper  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BI1").Select
ActiveCell.FormulaR1C1 = _
"=""Steven Seagal  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BJ1").Select
ActiveCell.FormulaR1C1 = _
"=""Jake Gyllenhaal  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BK1").Select
ActiveCell.FormulaR1C1 = _
"=""Woody Harrelson  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BL1").Select
ActiveCell.FormulaR1C1 = _
"=""Ben Affleck  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BM1").Select
ActiveCell.FormulaR1C1 = _
"=""Eddie Murphy  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BN1").Select
ActiveCell.FormulaR1C1 = _
"=""Sean Penn  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BO1").Select
ActiveCell.FormulaR1C1 = _
"=""Christoph Waltz  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BP1").Select
ActiveCell.FormulaR1C1 = _
"=""Jack Lemmon  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BQ1").Select
ActiveCell.FormulaR1C1 = _
"=""Louis de Funès  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BR1").Select
ActiveCell.FormulaR1C1 = _
"=""Rowan Atkinson  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BS1").Select
ActiveCell.FormulaR1C1 = _
"=""John Cusack  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BT1").Select
ActiveCell.FormulaR1C1 = _
"=""Will Smith  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BU1").Select
ActiveCell.FormulaR1C1 = _
"=""Gene Hackman  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BV1").Select
ActiveCell.FormulaR1C1 = _
"=""Colin Farrell  ""& ANZAHLGELB(R[1]C:R[499]C) & "" Filme von ""&COUNTA(R[1]C:R[499]C)"
Range("BW1").Select
ActiveWindow.ScrollColumn = 1
Range("A1").Select
Application.ScreenUpdating = False
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel mit Makro Aktualisieren
14.05.2021 10:36:12
ChrisL
Hi
Wenn was schief läuft
Ich verstehe nicht, was dich zu dieser Lösung bewogen hat. Was läuft denn üblicherweise schief?
Kann ich das irgendwie Pauschal lösen
Prinzipiell ja, aber woher soll das Programm wissen, welche Schauspieler hinzukommen/wegfallen. Solange du diese fix in die Formel schreibst, muss irgendwo eine Liste hinterlegt sein.
Im nachfolgenden Beispiel werden die Namen aus einem Datenfeld/Array entnommen, welches manuell erweiterbar ist.

Sub WertEnter()
Dim ar As Variant, i As Long
ar = Array("Harrison Ford", "Denzel Washington", "Robert De Niro")
For i = 0 To UBound(ar)
Cells(1, i + 1).FormulaR1C1 = "=""" & ar(i) & " ""&ANZAHLGELB(R[1]C:R[499]C)&"" Filme von ""&COUNTA(R[1]C:R[499]C)"
Next i
End Sub

Function AnzahlGelb(rng As Range) As Long
Dim r As Range
For Each r In rng
If r.Interior.Color = 65535 Then AnzahlGelb = AnzahlGelb + 1
Next r
End Function
cu
Chris
Anzeige
AW: Formel mit Makro Aktualisieren
14.05.2021 11:02:17
oraculix
Danke erst mal aber jetzt habe ich den Fehler #WERT und es funktioniert nicht.
Der Fehler wird immer ausgelöst wenn ein VBA Code schief läuft egal welcher.
nicht rekonstruierbar owT.
14.05.2021 11:05:06
ChrisL
.
AW: nicht rekonstruierbar owT.
14.05.2021 11:22:54
oraculix
ja ist mir auch ein Rätsel
Ich bräuchte eigentlich nur ein Makro das am ende der Formel einen klick macht und dann Enter
dann in in die nächste Zelle und wieder Klick Enter
ohne Namen vielleicht geht das?
AW: nicht rekonstruierbar owT.
14.05.2021 11:31:41
Nepumuk
Hallo,
versuch es mal so:
Code:

Code in die Zwischenablage

Public Function AnzahlGelb(ByRef probjRange As Range) As Long
Application.Volatile
Dim objCell As Range
For Each objCell In probjRange
If objCell.Font.Color = RGB(255, 255, 0) Then AnzahlGelb = AnzahlGelb + 1
Next
End Function


Gruß
Nepumuk
Anzeige
AW: nicht rekonstruierbar owT.
14.05.2021 11:43:42
oraculix
Danke auch Dir Nepomuk!
Es kommt zwar kein Fehler aber ich werde gefragt welches Makro ich ausführen möchte wenn ich Deinen Code ausführe?
AW: nicht rekonstruierbar owT.
14.05.2021 11:46:10
max.kaffl@gmx.de
Hallo,
die Funktion ersetzt die vorhandene "AnzahlGelb". Die sollst du nicht starten, die wird durch die Formel aufgerufen.
Gruß
Nepumuk
AW: nicht rekonstruierbar owT.
14.05.2021 11:49:15
oraculix
Danke Verstehe
Kommt der Code in Modul oder Arbeitsmappe?
AW: nicht rekonstruierbar owT.
14.05.2021 11:58:07
oraculix
Soll ich dieses Makro löschen und das Neue stattdessen verwenden?
'Schauspieler Gelbe zählen

Public Function AnzahlGelb(ByRef probjRange As Range) As Long
Dim objCell As Range
Dim strFirstAddress As String
With Application.FindFormat
Call .Clear
.Font.Color = RGB(255, 242, 204)
End With
Set objCell = probjRange.Find(What:="*", SearchFormat:=True)
If Not objCell Is Nothing Then
strFirstAddress = objCell.Address
Do
AnzahlGelb = AnzahlGelb + 1
Set objCell = probjRange.Find(What:="*", After:=objCell, SearchFormat:=True)
Loop Until objCell.Address = strFirstAddress
Set objCell = Nothing
End If
End Function

Anzeige
AW: nicht rekonstruierbar owT.
14.05.2021 12:02:44
Nepumuk
Hallo,
nein, ändere die Prozedur so:
Code:

Code in die Zwischenablage

Public Function AnzahlGelb(ByRef probjRange As Range) As Long
Application.Volatile
Dim objCell As Range
Dim strFirstAddress As String
With Application.FindFormat
Call .Clear
.Font.Color = RGB(255, 242, 204)
End With
Set objCell = probjRange.Find(What:="*", SearchFormat:=True)
If Not objCell Is Nothing Then
strFirstAddress = objCell.Address
Do
AnzahlGelb = AnzahlGelb + 1
Set objCell = probjRange.Find(What:="*", After:=objCell, SearchFormat:=True)
Loop Until objCell.Address = strFirstAddress
Set objCell = Nothing
End If
End Function


Ich hatte die Prozedur nicht mehr im Kopf.
Gruß
Nepumuk
Anzeige
AW: nicht rekonstruierbar owT.
14.05.2021 12:35:09
oraculix
Danke Kein Fehler
Excel zeigt zwar beim Neuhinzugefügten Schauspieler eine Null 0 an aber sobald ich auf ein anderes Tabellenblatt klicke atualisiert sich die Formel wie von Geisterhand
mit dem kann ich leben.
Danke nochmal
AW: nicht rekonstruierbar owT.
14.05.2021 12:46:49
Nepumuk
Hallo,
drück mal F9
Gruß
Nepumuk
AW: nicht rekonstruierbar owT.
14.05.2021 12:56:21
oraculix
Jup Passt Danke Dir

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige