Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Formel-Umwandlung in VBA scheint fehlerhaft

Mitglied: user1234

user1234 (Level 1) - Jetzt verbinden

21.12.2010, aktualisiert 22.12.2010, 7778 Aufrufe, 8 Kommentare

Hallo Zusammen.

Ich habe ein Problem mit einer Formel unter Excel 2000.

Es handelt sich um diese Formel, die sonst per Excel wunderbar läuft:

01.
=WENN(ISTFEHLER(VERGLEICH("UM03 =ZUGESTELLT";BP2:CC2;0));  
02.
  WENN(ISTFEHLER(VERGLEICH("UM79 =ENTL.-SCAN";BP2:CC2;0));"";  
03.
     INDEX(BP2:CC2;1;VERGLEICH("UM79 =ENTL.-SCAN";BP2:CC2;0)+1));  
04.
     INDEX(BP2:CC2;1;VERGLEICH("UM03 =ZUGESTELLT";BP2:CC2;0)+1))
Nachdem ich dies mit einem Makro aufgezeichnet habe, sieht es in VBA wie folgt aus:

01.
Range("CF2").Select 
02.
    ActiveCell.FormulaR1C1 = _ 
03.
        "=ISERROR(MATCH(""UM03 =ZUGESTELLT"",RC[-69]:RC[-16],0))""UM79 =ENTL.-SCAN"",RC[-69]:RC[-16],0)),""""," & Chr(10) & "     INDEX(RC[-16]:RC[-3],1,MATCH(""UM79 =ENTL.-SCAN"",RC[-16]:RC[-3],0)+1))?RC[-16]:RC[-3] 1 MATCH(""UM03 =ZUGESTELLT"",RC[-16]:RC[-3],0)"
Starte ich nun mein Makro, kommt ein Fehler:
Laufzeitfehler 1004
Anwendungs- oder objektdefinierter Fehler.

Wenn ich die Meldung mit "Debuggen" bestätige, markiert er mir die oben genannte Zeile.

Hat jemand eine Idee?

Gruß
Mitglied: 76109
21.12.2010 um 16:08 Uhr
Hallo user1234!

Du hast u.a. die IF's alias Wenn vergessen

Versuchs mal so (FormulaLocal):
01.
    Range("CF2").FormulaLocal = "=WENN(ISTFEHLER(VERGLEICH(""UM03 =ZUGESTELLT"";BP2:CC2;0));" & _ 
02.
        "WENN(ISTFEHLER(VERGLEICH(""UM79 =ENTL.-SCAN"";BP2:CC2;0));"""";" & _ 
03.
        "INDEX(BP2:CC2;1;VERGLEICH(""UM79 =ENTL.-SCAN"";BP2:CC2;0)+1));" & _ 
04.
        "INDEX(BP2:CC2;1;VERGLEICH(""UM03 =ZUGESTELLT"";BP2:CC2;0)+1))"
Gruß Dieter
Bitte warten ..
Mitglied: user1234
21.12.2010 um 16:28 Uhr
Peeeeeeeeeerfekt.
Danke!

Schöne Feiertage!
Gruß
Bitte warten ..
Mitglied: user1234
22.12.2010 um 15:53 Uhr
Hallo zusammen.

Leider wirft die Formel doch einiges durcheinander. Die Ergebnisse werden nicht richtig gefiltert.
Teilweise bekomme ich ein #NV, teilweise irgendwelche Daten.

Mag jemand nochmal ein Blick über den VBA-Code werfen?
Bitte warten ..
Mitglied: 76109
22.12.2010 um 20:14 Uhr
Hallo user1234!

Deine Formel wird explizit nach Deiner Vorgabe in die Zelle geschrieben:
01.
=WENN(ISTFEHLER(VERGLEICH("UM03 =ZUGESTELLT";BP2:CC2;0));WENN(ISTFEHLER(VERGLEICH("UM79 =ENTL.-SCAN";BP2:CC2;0));"";INDEX(BP2:CC2;1;VERGLEICH("UM79 =ENTL.-SCAN";BP2:CC2;0)+1));INDEX(BP2:CC2;1;VERGLEICH("UM03 =ZUGESTELLT";BP2:CC2;0)+1))
Und wenn Deine Formel nicht richtig funktioniert, dann liegt das keinesfalls am VBA-Code

Gruß Dieter
Bitte warten ..
Mitglied: Biber
22.12.2010 um 20:40 Uhr
Moin user1234,

ich denke auch, wir reden hier von 2 Baustellen.
Das eine ist das stumpfsinnige Konvertieren der Cell/Range-Properties .Formala/.FormulaLocal/.FormulaR1C1/.FormulaR1C1Local hin und her.
Dabei hat Excel keine Schwierigkeiten und es kommt auch keine sinnentstellte Formel raus.
Da kam ich bei meinen Tests zu den gleichen Ergebnissen wie didi1954.

Also muss wohl eher dein Handling beim Aufzeichnen des Makros etwas abseits des Mainstreams sein.

In deinem ersten geposteten Quelltext
01.
    ActiveCell.FormulaR1C1 = _ 
02.
        "=ISERROR(MATCH(""UM03 =ZUGESTELLT"",RC[-69]:RC[-16],0))""UM79 =ENTL.-SCAN"",RC[-69]:RC[-16],0)),""""," & Chr(10) & "     INDEX(RC[-16]:RC[-3],1,MATCH(""UM79 =ENTL.-SCAN"",RC[-16]:RC[-3],0)+1))?RC[-16]:RC[-3] 1 MATCH(""UM03 =ZUGESTELLT"",RC[-16]:RC[-3],0)"
ist absolut nicht reproduzierbar
a) woher denn dieses "& chr(10) & " kommen könnte ?
Hast du diese Formel mal zwischenzeitlich in der Zelle als "Text" stehen gehabt statt als Formel und dabei einen Strg-Enter-Zeilenumbruch zur Lesbarkeit eingefügt?
b) die in dem Code wiedergegebenen Row/Column-Referenzen "RC[-69]:RC[-16]" sind absolut unerklärlich.
Und auch nicht reprozierbar bei einer Eingabe der "Zell-Formel" in Zelle CF2 und anschliessendem Makro-Aufzeichnen.

ist dieser Effekt denn bei dir reproduzierbar, wenn du in einem "leeren" Arbeitsblatt in Zelle CF2 didi1954s Formel "makrorecordest"?

Grüße
Biber

Nachtrag:
Es könnte ein falsches Handling beim Makro-Recorden sein.

Falls der FormelText in der Zelle z.B.CF2 > 255 Zeichen ist, (und das ist er!),
  • dann darfst du nicht beim Makrorekorden einen Doppelklick auf die Zelle ausführen (oder mit F2 den Zellinhalt markieren)
  • sondern nur die Zelle selektieren ("auf die Zelle gehen") und dann mit "Strg-C/Strg-V " oder "Kopieren/Einfügen" hantieren.

Weil:
  • Text im Bearbeitungsmodus einfügen -> Makrorecorder: "ActiveCell.FormulaR1C1 = "<deineFormelInDerzelle>"".
  • Formel-Text einfügen ohne "Bearbeitungsmodus" -> "ActiveSheet.Paste"

Nur das zweite klappt bei Formel-Texten > 255 Zeichen <= 1024 Zeichen.

Praktikanten halt.

nochmal Grüße
Biber
Bitte warten ..
Mitglied: user1234
23.12.2010 um 09:32 Uhr
Hallo zusammen.

Vielen Dank für Eure Antworten. Im Nachhinein kann ich nicht nachvollziehen, wie ich was genau gemacht habe. Habe 1000 Sachen probiert.


@Biber:
- Dieses \"& chr(10) & \" kam von Excel automatisch.


Wenn ich den oben genannten Code in mein VBA-Code einfüge, klappt es. Einen Fehler habe ich bei meinen Suchworten gefunden.
Ich habe sie noch einmal sauber aus der Excel-Liste kopiert, dann klappt es.

Kann ich bei den Suchworten mit \"enthält\" arbeiten?
Also statt \"UM03 =ZUGESTELLT \" enthält \"UM03\" ?

Vielen vielen Dank für Eure hilfe
Bitte warten ..
Mitglied: 76109
23.12.2010 um 10:19 Uhr
Hallo user1234!

Du kannst beim Vergleichstyp 0 auch Platzhalter (*?) verwenden z.B. "*UM03\*" oder "UM03*Zugest*"

Gruß Dieter
Bitte warten ..
Mitglied: user1234
23.12.2010 um 10:31 Uhr
Es kann so einfach sein ...
Manchmal sieht man den Wald vor lauten Bäumen nicht.

PS: Ich schick euch beiden eine PN. Irgendwie muss ich euch zu Weihnachten ein kleines Dankeschön zukommen lassen ;)
Bitte warten ..
Ähnliche Inhalte
Entwicklung
VBA wenn Formel
Frage von TheSB891Entwicklung1 Kommentar

Hallo Zusammen Ich hab da ein kleines Problem und finde leider keine Lösung. Ich habe eine Tabelle die ich ...

Microsoft Office
Excel-Formel oder VBA
gelöst Frage von nicki01Microsoft Office7 Kommentare

Hallo Ich weiß nicht, ob ich hier richtig bin. Mein Problem: Ich habe mir (mit Mühe) ein Excel-Haushaltsbuch aufgebaut. ...

VB for Applications

Excel VBA Formel "WENN" einfügen

gelöst Frage von chef1568VB for Applications2 Kommentare

Hallo zusammen, ich möchte per Excel-Makro folgende Formel eintragen: EXCEL: VBA: Leider bekomme ich hier immer einen anwendungsrelevanten Fehler ...

VB for Applications

VBA Formel einfügen

Frage von Gimli3311VB for Applications4 Kommentare

Guten Tag Zusammen, ich bin es mal wieder und brauche eure Hilfe. Problem: Ich möchte die Termintreue angezeigt bekommen ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein interessanter Beitrag dazu: Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10 Anscheinend ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL14 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs11 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)11 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...