Syntaxfehler? - Excel und VBA

Diskutiere und helfe bei Syntaxfehler? - Excel und VBA im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo Community, hier habe ich wohl ein einfaches Problem, was ich trotz Suche und gefundenen Beispielen nicht hinkriege. Wo finde ich eine gute... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Michael5960, 8. Oktober 2016.

  1. Syntaxfehler? - Excel und VBA


    Hallo Community,


    hier habe ich wohl ein einfaches Problem, was ich trotz Suche und gefundenen Beispielen nicht hinkriege. Wo finde ich eine gute Anleitung für Syntax Excel und VBA?

    Problem:

    In meinem Tabellenblatt "DATENEINGABE" benötige ich in Zelle AF6 bis AF 57 folgende Formel

    =MAX('DATEN 2016'!$P6:$AD6)

    2016 soll ersetzt werden durch die Variable im Tabellenblatt"Parameter" in Zelle A56 (z. Z. 2016)


    und in VBA habe ich es so versucht:

    Sub Formel()
    Dim myStr As String
    myStr = "'DATEN'!" & Sheets("PARAMETER").Range("A56")
    Sheets("DATENEINGABE").Range("AF6:AF57").Formula = "=MAX( " & myStr & " P6:AD6)"
    End Sub


    Ein ähnliches Problem habe ich bei

    Sheets("Jahr").Range("QN8:SW57").Value = Sheets("Jahr").Range("NF8:pO57").Value

    Funktioniert mit value aber nicht mit Formats oder ValuesAndNumberFormats.


    Schöne Grüße

    Michael
     
  2. Andreas_SL Win User

    Syntaxfehler? - Excel und VBA

    Hallo Michael,

    war die Antwort von Andreas Killer hilfreich?

    Falls ja, markiere diese bitte als hilfreich - falls nein, lass es uns wissen somit kann dir vielleicht ein weiterer Beitrag der Community helfen oder vlt. sogar das

    Entwicklerforum MSDN
    .

    Bitte halte uns auf dem Laufenden!
  3. Michael5960 Win User

    Syntaxfehler? - Excel und VBA

    Hallo Andreas,

    und wieder mal geholfen. Vielen Dank und alles andere muss ich mir wieder in Ruhe mit deiner prima Erklärung zur Gemüte führen. Da ich am Sonntag noch vorankommen mußte, habe ich solange gemurkst., bis es zumindest funktioniert hat.

    Hier meine Lösung:

    Dim myStr As String

    myStr = "'DATEN " & Sheets("PARAMETER").Range("A56") & "'!"

    'Berechnung Formel Max einfügen in "DATENEINGABE" AF6:AF55

    Sheets("DATENEINGABE").Range("AF6").Formula = "=MAX(" & myStr & "P6:AD6)"

    Sheets("DATENEINGABE").Range("AF6").AutoFill Destination:=Range("AF6:AF55"), Type:=xlFillDefault

    Danke und Gruß

    Michael
  4. Michael5960 Win User

    Syntaxfehler? - Excel und VBA

    Hallo Andreas,

    vielen Dank für das ausführliche Gegenstück.

    Den Errorhandler muss ich mir in Ruhe näher ansehen; habe verstanden das dies eine Prüfung ist und dann das Programm auch korrigiert, wenn Murks passiert.

    Wenn ich meine Anwendung irgendwann später analysieren möchte, ist dies weitaus unübersichtlicher und unverständlicher; habe ich auch verstanden. Dein Gegenstück ist später viel einfacher nachzuvollziehen!

    Als Anfänger habe ich mich halt einfach durchgemurkst - ganz schön lange!

    Nochmals vielen für die nächste Lektion.

    Gruß

    Michael
  5. Andreas Killer Win User

    Syntaxfehler? - Excel und VBA

    Hallo Michael,

    dann will ich Dir mal das Gegenstück zeigen was als Resultat das gleiche macht.

    Andreas.

    Sub Test()

    Dim Jahr As Range, Was As Range, Dest As Range

    Dim Formel As String



    'Bei sowas kann eine Menge Murks passieren, daher:

    On Error GoTo Errorhandler



    'Wo ist das Jahr?

    Set Jahr = Worksheets("Parameter").Range("A56")

    'Wo ist der zu berechnende Bereich?

    Set Was = Worksheets("Daten " & Jahr.Value).Range("P6:AD6")

    'Wo soll die Formel hin?

    Set Dest = Worksheets("Dateneingabe").Range("AF6:AF55")



    'Die Referenzen in der normalen Formel...

    ' =MAX('DATEN 2016'!$P6:$AD6)

    'durch einfache Platzhalter ersetzen:

    Formel = "=MAX(@[Was])"



    'Dann die Platzhalter durch die referenzierten Zellen ersetzen

    Formel = Replace(Formel, "@[Was]", Was.Address(0, 0, External:=True))

    'Eintragen (FormulaLocal akzeptiert Formeln der installierten Sprache, Formula nur Englische!)

    Dest.Rows(1).FormulaLocal = Formel

    Dest.FillDown



    Exit Sub

    Errorhandler:

    If Err.Source = "" Then Err.Source = Application.Name

    Debug.Print "Source : " & Err.Source

    Debug.Print "Error : " & Err.Number

    Debug.Print "Description: " & Err.Description

    If MsgBox("Error " & Err.Number & ": " & vbNewLine & vbNewLine & _

    Err.Description & vbNewLine & vbNewLine & _

    "Enter debug mode?", vbOKCancel + vbDefaultButton2, Err.Source) = vbOK Then

    Stop 'Press F8 twice

    Resume

    End If

    End Sub
  6. Andreas Killer Win User

    Syntaxfehler? - Excel und VBA

    Sheets("Jahr").Range("QN8:SW57").Value = Sheets("Jahr").Range("NF8:pO57").Value
    Funktioniert mit value aber nicht mit Formats oder ValuesAndNumberFormats.
    Logisch, das Range-Objekt kennt weder "Formats" noch "ValuesAndNumberFormats", sowas gibt es in Excel nicht.

    Bitte keine Ratespiele, das macht niemandem Spaß. Ich denke mal Du beziehst Dich auf

    xlPasteValuesAndNumberFormats

    was ein mögliches Argument für Range.PasteSpecial wäre und in der Hilfe gibt es dazu ein Beispiel.

    Zu den Formeln... ich weiß das dieses Gebastel mit ""&&&"&"&" überall vorgeschlagen wird, ich sag nur:

    Ganz grausig, das machen nur Amateure.

    Außerdem vergisst Du einen Grundsatz den ich Dir schon gezeigt hatte: Immer ordentlich die Range-Objekte referenzieren. Das sieht zwar im erstem Moment umständlich aus und man meint man kann sich schneller was zurechtpfuschen... spätestens wenn man nach
    ein paar Wochen in den Code kuckt wird einem klar was für Murks man gemacht hat. Naja, Deine Entscheidung.

    Die Idee aus einer Tabelle was zu lesen und daraus dann eine Formel zu basteln ist leider auch weit verbreitet, ich würde sowas im Leben nicht machen! Schon beim geringsten Tippfehler bricht das ganze Kartenhaus zusammen.

    Schau Dir den Code unten an, ist IMHO viel einfacher, besser nachvollziehbar, leicht zu ändern, man kann Fehler besser eingrenzen...

    Andreas.

    Sub Test()

    Dim Jahr As Range, Was As Range, Dest As Range

    Dim Formel As String



    'Bei sowas kann eine Menge Murks passieren, daher:

    On Error GoTo Errorhandler



    'Wo ist das Jahr?

    Set Jahr = Worksheets("Parameter").Range("A56")

    'Wo ist der zu berechnende Bereich?

    Set Was = Worksheets("Daten " & Jahr.Value).Range("P6:AD6")

    'Wo soll die Formel hin?

    Set Dest = Worksheets("Dateneingabe").Range("AF6:AF57")



    'Die Referenzen in der normalen Formel...

    ' =MAX('DATEN 2016'!$P6:$AD6)

    'durch einfache Platzhalter ersetzen:

    Formel = "=MAX(@[Was])"



    'Dann die Platzhalter durch die referenzierten Zellen ersetzen

    Formel = Replace(Formel, "@[Was]", Was.Address)

    'Eintragen (FormulaLocal akzeptiert Formeln der installierten Sprache, Formula nur Englische!)

    Dest.FormulaLocal = Formel



    Exit Sub

    Errorhandler:

    If Err.Source = "" Then Err.Source = Application.Name

    Debug.Print "Source : " & Err.Source

    Debug.Print "Error : " & Err.Number

    Debug.Print "Description: " & Err.Description

    If MsgBox("Error " & Err.Number & ": " & vbNewLine & vbNewLine & _

    Err.Description & vbNewLine & vbNewLine & _

    "Enter debug mode?", vbOKCancel + vbDefaultButton2, Err.Source) = vbOK Then

    Stop 'Press F8 twice

    Resume

    End If

    End Sub
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Syntaxfehler? - Excel und VBA - Microsoft Office

Die Seite wird geladen...

Syntaxfehler? - Excel und VBA - Similar Threads - Syntaxfehler Excel VBA

Forum Datum

Syntaxfehler?

Syntaxfehler?: ich habe eine Aufgabe erstellt welche die Virusinformationen des Defender stündlch aktualisiert. Diese wird auch erfolgreich beendet, allerdings erscheint bei der Ausführung immer das schwarze...
Apps 11. Juni 2023

Syntaxfehler?

Syntaxfehler?: ich habe eine Aufgabe erstellt welche die Virusinformationen des Defender stündlch aktualisiert. Diese wird auch erfolgreich beendet, allerdings erscheint bei der Ausführung immer das schwarze...
Games und Spiele 11. Juni 2023

Excel VBA

Excel VBA: Hallobenutze schon länger ein selbst geschriebenes Addin eine Berechnungsfunktion. Diese ist bei den AddIns Datei > Optionen > AddIn auch angezeigt und funktioniert auch über benutzerdefinierte...
Microsoft Office 9. Juni 2022

Excel - VBA

Excel - VBA: Hallo Zusammen! Kann mir jemand sagen, wie ich es einfacher gestallten kann? Ich muss dies von Zeile 2 bis 1915 machen. LG Nikola Sub WennDann If Range"G2" = "" Then Range"D2" = Range"H2"...
Microsoft Office 8. Oktober 2020

excel vba

excel vba: hi ich habe: Worksheets("test2").Range("b3").Copy Destination:=Worksheets("Mdax").Range("b20") was schön und gut funktioniert nur kann ich damit auch die Zielzelle definieren? In meinem...
Microsoft Office 24. Juli 2019

EXCEL-VBA.

EXCEL-VBA.: Wie splittet man den Bildschirm bei Programmtests in 1. Code-Fenster, 2. EXCEL-Arbeitsblatt. Ich weiß, dass es geht aber nicht wie. Heißen Dank!
Microsoft Office 10. Dezember 2018

Feldfunktion Syntaxfehler

Feldfunktion Syntaxfehler: Ich möchte jede zweite nummerieren und auch nur jede zweite zählen. (Seite 1 - Zahl 1; Seite 2 - keine Zahl; Seite 3 - Zahl 2; Seite 4 - keine Zahl; Seite 5 - Zahl 3; usw.). Über "Gerade und...
Microsoft Office 31. August 2017
Syntaxfehler? - Excel und VBA solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.