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

Aufgezeichnetes Makro, formel gibt laufzeitfehler 1004

Frage Entwicklung VB for Applications

Mitglied: asta311

asta311 (Level 1) - Jetzt verbinden

17.11.2014, aktualisiert 24.11.2014, 2152 Aufrufe, 17 Kommentare

Hallo liebe Leute,

ich bin sowas von Anfänger mit Makros für Excel, also bitte nachfragen, wenn ich mich nicht klar genug ausdrücke.

Ich möchte von einer (beliebigen) aktiven Zelle(hier a1) ausgehend mittels Button folgendes erreichen

füge unter dieser Zelle drei leere Zeilen ein
Schreibe in Zelle (h3) das Wort Summe
kopiere in die nächstfolgende Spalte(i3) die anfangs aktivierte Zelle(a1)
Schreibe in die nächste Spalte(j3) die Summe von den zwei direkt darüber liegenden Zeilen(j1:j2) bis maximal zum Anfang (j1).........hier will ich später Zeilen einfügen
verschiebe die Zellen L1 und M1 zwei Zeilen nach unten
rechne in n3 = k3*m3
füge Unterstreichungen hinzu.

Aufgezeichnet habe ich erstmal...........
Sub Positionssumme()
'
' Positionssumme Makro
'

'
ActiveCell.Offset(1, 0).Rows("1:3").EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-1, 11).Range("A1:B1").Select
Selection.Cut Destination:=ActiveCell.Offset(2, 0).Range("A1:B1")
ActiveCell.Offset(2, -4).Range("A1").Select
ActiveCell.FormulaR1C1 = "Summe Pos."
ActiveCell.Offset(-2, -6).Range("A1").Select
Selection.Copy
ActiveCell.Offset(2, 8).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(0, 1).Range("A1").Select
Range("A1").FormulaR1C1 = "=SUM(R[-1]C:R[-2]C)"
ActiveCell.Offset(0, 3).Range("A1").Select
Range("A1").FormulaR1C1 = "=RC[-3]*RC[-1]"
Range("B50:N50").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

nicht ganz bis zum Ende, weil ich neugierig war, und siehe da........beide Formeln führen zu Laufzeitfehler 1004. Ich suche jetzt seit zwei Tagen den Fehler,
1.1 Baustelle einrichten
Summe Pos1.1 0,000 psch 10.000,00 0,00
so ungefähr solls aussehen.

Helft mir bitte weiter.

Gruß Asta
Mitglied: Roadrunner0815
18.11.2014 um 07:08 Uhr
Hast du den ganzen Teil aufgezeichnet oder sind da auch ein paar Ergänzungen von dir drin? Wenn ja, wo?
Bitte warten ..
Mitglied: 116301
18.11.2014, aktualisiert um 10:36 Uhr
Hallo Roadrunner0815!

Hast du den ganzen Teil aufgezeichnet oder sind da auch ein paar Ergänzungen von dir drin? Wenn ja, wo?
In allem, was mit Offsets und Range zu tun hat und dadurch völlig sinnfrei geworden ist. Auch die Formeln ergeben keinen Sinn, da sie in A1 (Zeile 1/Spalte 1) mit negativen Werten (z.B. R[-1], C[-3]) keine vernünftigen Zellbereiche definieren:
=SUM(R[-1]C:R[-2]C) steht für =SUMME(A1048575:A1048576)
=RC[-3]*RC[-1] steht für =XFB1*XFD1
Und da er/sie die Formeln in die gleiche Zelle in A1 einfügt, steht logischerweise auch nur die letzte drin (=XFB1*XFD1), sofern der Debugger nicht rebelliert...

Grüße Dieter
Bitte warten ..
Mitglied: 116301
18.11.2014, aktualisiert 19.11.2014
Hallo Asta!

Bezugnehmend auf Deine PN

Soweit ich das Ganze verstanden habe, in etwa so:
01.
Sub MachWas() 
02.
    If ActiveCell.Column = 1 Then   'Nur Spalte A akzeptieren 
03.
        With ActiveCell 
04.
            .Offset(1, 0).Resize(3).EntireRow.Insert Shift:=xlDown  '3 Zeilen einfügen 
05.
            .Offset(2, 7).Value = "Summe:"                          'H3 = Wort Summe 
06.
            .Copy .Offset(2, 8)                                     'A1 -> I3 (Copy) 
07.
            .Offset(2, 9).FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"       'J3 = Summe J1:J2 
08.
            .Offset(0, 11).Resize(1, 2).Cut .Offset(2, 11)          'L1:M1 -> L3:M3 (Cut) 
09.
            .Offset(2, 13).FormulaR1C1 = "=RC[-3]*RC[-1]"           'N3 = K3*M3 
10.
        End With 
11.
         
12.
        With Range("B50:N50").Borders(xlEdgeBottom) 
13.
            .LineStyle = xlContinuous 
14.
            .Weight = xlThin 
15.
        End With 
16.
    End If 
17.
End Sub
Grüße Dieter
Bitte warten ..
Mitglied: asta311
20.11.2014 um 12:21 Uhr
Danke Dieter

Das sieht natürlich bedeutend professioneller aus, als mein Geschriebsel. Meine "Mach was" heißt "Positionssumme" und geht erst in Spalte B los, aber das kann ich ( auch mal was *g). Leider auch hier in Zeile 7 Laufzeitfehler 1004. Und nun???
Vielleicht eine Einstellung, oder Excel 2013, oder, oder..........
Immer noch HILFE

lg Asta
Bitte warten ..
Mitglied: Roadrunner0815
20.11.2014 um 15:31 Uhr
Wenn du auf deinem Excel-Blatt in die Zelle J3 (da müsste ja wenn du darauf klickst die Formel oben angezeigt werden) schaust steht da ein sinnvoller Wert?

Eine andere Idee wäre noch, kann es sein das du versuchst eine Division durch 0 zu machen bzw. etwas anderes als eine Zahl den den Zellen J1 und J2 steht?

Wenn du von der ersten bis zur letzten Zeile Daten adressieren möchtest, dann veruch es mal mit z.B. "!$A8".
Bitte warten ..
Mitglied: asta311
20.11.2014 um 16:33 Uhr
Hallo roadrunner,

da steht Garnichts, denn da bricht das Makro ab........mit o.g. Fehler. Da ich nur addiere ( und wenns geht später dann mal multipliziere), ist rechnerisch höchstens "null" möglich. Formatiert sind die Zellen auf Standard, dürfte also auch nicht schädlich sein. Fest adressieren kann ich nicht, ich hab immer so an die 200 Positionen, die nach und nach gefüllt werden. Ich kann die Excel-Datei gern mal posten zum Ausprobieren, hab nur wieder mal null Ahnung wie das hier im Forum geht.

Danke für die Hinweise, ich hoffe, ihr bleibt mit mir dran
Bitte warten ..
Mitglied: 116301
20.11.2014, aktualisiert um 19:20 Uhr
Hallo Asta!

Meine "Mach was" heißt "Positionssumme" und geht erst in Spalte B los,
Soll heißen, dass sich die ActiveCells in Spalte B anstatt in Spalte A befinden?

Leider auch hier in Zeile 7 Laufzeitfehler 1004. Und nun???
Vielleicht eine Einstellung, oder Excel 2013, oder, oder.......
Sorry, den Laufzeitfehler in Zeile 7 kann ich beim besten Willen nicht nachvollziehen. Sollte eigentlich in allen Excel-Versionen problemlos funktionieren...

Was passiert, wenn Du mal manuell 3 Zeilen einfügst und in die Zelle J3 die Formel "=Summe(J1:J2)" schreibst?

Grüße Dieter
Bitte warten ..
Mitglied: asta311
21.11.2014 um 09:02 Uhr
Hallo Dieter,

die Änderungen für die aktuelle Zelle hab ich gemacht, ich verstehe auch den Code gut, was in den einzelnen Zeilen deines Makros passieren soll (auch ohne Kommentar). Zur Probe habe ich in der Tabelle mal die Spalte A gelöscht(ist ein Platzhalter) und mit "Machwas" probiert, also im Original, auch da derselbe Fehler.

Wenn ich das manuell mache, habe ich in j3 eine 0,00 stehen.

Ich hab mal mein Informatiktöchterlein befragt, und in ihrer Firma hat keiner einen Plan, weil hier wohl absolute und relative Bezüge gemischt sind. Das nur so nebenbei.

Wenns hart kommt, werde ich die komplette Zeile irgendwo im Tabellenblatt hinschreiben, inkl. Formeln und dann per Makro nur noch kopieren. Unelegant, unbefriedigend, aber naja..........

Gruß Asta
Bitte warten ..
Mitglied: Roadrunner0815
21.11.2014 um 09:58 Uhr
Hallo Asta,

wär ne gute Sache, wenn du den Tabelleninhalt mal posten könntest. Wie das geht kann ich dir leider auch nicht sagen, bin hier auch Frischling...
Bitte warten ..
Mitglied: 116301
21.11.2014, aktualisiert um 10:09 Uhr
Hallo Asta!

Ich hab mal mein Informatiktöchterlein befragt, und in ihrer Firma hat keiner einen Plan, weil hier wohl absolute und relative Bezüge gemischt sind. Das nur so nebenbei.
Gemischt ist da nichts. Formeln können entweder mit relativen oder absoluten Zellbezügen angegeben werden und in Deinem Fall sind in Abhängigkeit von ActiveCell eigentlich relative Zellbezüge erforderlich. Desweiteren besteht die Wahl, die Formel in der internen (VBA-englisch) Sprache oder der installierten Sprachversion anzugeben. Hier mal ein paar Beispiele:
01.
Absolute Zellbezüge: 
02.
.Formula = "SUM(J1:J2)"                     'englisch (VBA) 
03.
.FormulaLocal = "SUMME(J1:J2)"              'deutsch (Sprachpaket) 
04.
 
05.
Relative Zellbezüge: 
06.
.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"        'englisch (VBA) 
07.
.FormulaR1C1Local = "=SUMME(Z[-2]S:Z[-1]S)" 'deutsch (Sprachpaket)
Wobei die restlichen Formulas entsprechend einer Eingabe automatisch angepasst werden und in der Excel-Oberfläche die Formel steht, die in .FormulaLocal (absoluter Zellbezug) hinterlegt ist...

Wenn Du eine deutschsprachige Excelversion hast, dann probier mal folgendes:
01.
'Active Cell in Spalte B (J3 = Summe J1:J2) 
02.
.Offset(2, 8).FormulaR1C1Local = "=SUMME(Z[-2]S:Z[-1]S)"
Und wenn das auch nicht funktioniert, dann eben mit absoluten Zellbezügen:
01.
'Active Cell in Spalte B 
02.
.Offset(2, 8).Formula = "=SUM(" & .Offset(0, 8).Resize(2, 1).Address & ")"
Grüße Dieter
Bitte warten ..
Mitglied: asta311
21.11.2014 um 10:10 Uhr
Danke Dir Dieter, naja, Kinder werden überbewertet...*fg
Ich hab die engl. Version..........die Formeln sind mir bekannt und ich probier jetzt mal mit deinen Anregungen
Bitte warten ..
Mitglied: 116301
21.11.2014 um 10:25 Uhr
Hallo Asta!

Wenn Du eine englische Version benutzt, dann könnte es auch so gehen:
01.
.FormulaR1C1Local = "=SUM(R[-2]C:R[-1]C)"   'englisch (Sprachpaket)
Grüße Dieter
Bitte warten ..
Mitglied: asta311
21.11.2014 um 10:55 Uhr
Nochmal an meine beiden Helfer:

ich würde euch die Datei gern schicken..........

.......so und jetzt Ergebnis:

absolute Bezüge für die Berechnungsformeln funktionieren, sind aber im Ergebnis falsch (logisch, da die Preise pro Pos. unterschiedlich sind und auch die Summen lokal sind), relative Bezüge in den Formeln ergeben Fehler und Abbruch.

Was habe ich da nur losgetreten..........
Bitte warten ..
Mitglied: 116301
21.11.2014, aktualisiert 24.11.2014
Hallo Asta!

Verstehe ich jetzt nicht so ganz, aber wenn dies darauf zurückzuführen ist, dass die Formel ($)-Zeichen enthält, dann läßt sich das auch noch ändern:
01.
.Offset(2, 8).Formula = "=SUM(" & Replace(.Offset(0, 8).Resize(2, 1).Address,"$","") & ")"
Ansonsten bin ich jetzt erst mal weg und erst heute Abend wieder zugegen

Grüße Dieter
Bitte warten ..
Mitglied: asta311
24.11.2014 um 09:21 Uhr
Guten Morgen,

funktioniert soweit, Laufzeitfehler ist weg, richtiger Bereich ist für die summe markiert, aber............mein Excel kennt kein SUM und gibt mir #Name? zurück.

Ich hab zuhause kein Excel, deswegen kann ich immer nur probieren wenn ich arbeite...........ist ja auch nur für die Arbeit

Gruß Asta
Bitte warten ..
Mitglied: 116301
24.11.2014 um 14:38 Uhr
Hallo Asta!

............mein Excel kennt kein SUM und gibt mir #Name? zurück.
Das soll wohl ein Scherz sein

Die interne (VBA)-Sprache ist englisch und Du hast eine englische Version *kopfschüttel*

Schau mal in diesen Kommentar zwecks Einträge im Objectkatalog. Ansonsten fällt mir dazu leider nix mehr ein..

Grüße Dieter
Bitte warten ..
Mitglied: asta311
24.11.2014 um 15:42 Uhr
Nein, kein Scherz, ich weiß, dass VBA Sprache englisch ist, habe aber gelesen, dass die Befehle automatisch verstanden werden, sorry, aber du machst mir nicht viel Mut, ich hab doch geschrieben: blutiger Anfänger,.....und jetzt auch noch mit blutiger Nase

alle beschriebenen Häkchen sind an, meine Objektbibliothek ist 12.0, sonst alles

ich hatte da auch schon nachgeschaut.........und Google bis ins Unendliche befragt
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Laufzeitfehler 1004 - webabfrage hat keine Daten geliefert, abfangen und zum nächsten satz springen
Frage von thomas1972Microsoft Office3 Kommentare

Hallo ich erhalte folgenden Hinweis beim Webbabfragen. Wie kann ich diese im Screenshot vorgebende abfangen, sobald Error 1004 springe ...

Microsoft Office
Statisches Datum in Excel Via Formel oder Makro
gelöst Frage von TheFalconMicrosoft Office12 Kommentare

Hallo zusammen, ich habe mal eine Frage und zwar: Ich habe eine Tabelle, in Spalte B wird via Formel ...

Microsoft Office
Gibt es eine Formel für Excel der mir ausgibt, wo ich mich innerhalb eines Blattes befinde?
gelöst Frage von 58528Microsoft Office8 Kommentare

Hallo Liebe Administrator Gemeinde, ich suche derzeit verzweifelt nach einer Funktion in Excel 2013. Ich möchte gerne ein Tabellenblatt ...

Webentwicklung
Sharepoint Laufzeitfehler
gelöst Frage von Florian86Webentwicklung1 Kommentar

Guten Tag, ich habe seit einigen Tagen einen Laufzeitfehler beim öffnen der Sharepointseite. Unsere Konstellation: Frontendserver SQL Server auf ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 5 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 18 StundenMac OS X3 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 1 TagDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 1 TagWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell25 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1019 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...