Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1396to1400
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

Hochkomma vor alle Formeln mit VBA

Hochkomma vor alle Formeln mit VBA
28.12.2014 17:31:00
Dieter(Drummer)

Guten Tag, Spezialisten/innen,
in einer Arbeitsmappe sind z.B. 30 Sheets. In diesen Sheets sind viele Formeln.
Gesuchte VBA Lösung:
a) Vor allen Formeln des aktuellen Sheets ein Hochkomma setzen, damit die Formeln sich beim kopieren an anderer Stelle, im neuen Sheet, nicht verändern!
b) Alle Formeln mit dem Hochkomma in ein neues Sheet, mit Sheetnamen "Neu..." und anfügen alter Shettname" einfügung. Wichtig dabei ist, dass die Formeln in der gleichen Zelle des neuen Sheets kopiert werden, aus der die Formel stammt.
c) Nur die Formeln sollen kopiert werden.
Freue mich, wenn es da eine VBA Lösung gibt.
Gruß und Danke für's drum kümmern,
Dieter(Drummer)

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tipp: Ersetze lieber = durch #! Apostroph davor...
28.12.2014 18:05:03
Luc:-?
…kann als StandardTextPräfix Probleme machen, Dieter!
Gruß, Luc :-?

AW: Danke Luc:-? aber ...
28.12.2014 18:27:43
Dieter(Drummer
...wie setze ich das jetzt nach meinen Wünschen in VBA um? Es soll ja jede Formel dann in ein neues Sheet an entsprechende Stelle kopiert werden.
Evtl. kannst Du da noch weiter helfen.
Gruß, Dieter(Drummer)

AW: Danke Matthias L, aber ...
28.12.2014 18:31:16
Dieter(Drummer
... bei deinem Makro wird auch die Zelle kopiert, die keine Formel enthält und wie bekomme ich das dann per VBA in ein neues Sheet an die entsprechende Stelle.
Evtl. kannst Du janoch weiter helfen.
Gruß, Dieter(Drummer)

Anzeige
lass Else einfach weg
28.12.2014 18:35:50
Matthias L
Hallo Dieter
Option Explicit
Sub HochzeichenSetzen()
Dim X&
For X = 1 To 3
If Len(Cells(X, 1).PrefixCharacter) <> 1 Then
If Cells(X, 1).HasFormula Then
Cells(X, 2).Formula = "'" & Cells(X, 1).Formula
End If
End If
Next
MsgBox ";o)"
End Sub
Sollte ja auch nur als Denkanstoß dienen ;-)
Gruß Matthias

AW: Prima Danke Matthias L. Wie ...
28.12.2014 18:40:14
Dieter(Drummer
... bekomme ich das jetzt an die entsprechende Stelle im neuen Sheet, in die Zelle, in der es im kopierten Sheet stand?
Gruß, Dieter(Drummer)

na die Zelladresse ist doch bekannt ...
28.12.2014 19:20:36
Matthias L
Hallo
https://www.herber.de/bbs/user/94617.xlsm
Code in Tab2 starten und dann in Tab3 schauen


OT
Wenn das dann ok so ist hab ich noch eine Frage zum Haus von Ni-ko-laus
Gruß Matthias

Anzeige
AW: Danke Matthias L. Noch etwas ...
28.12.2014 19:34:27
Dieter(Drummer)
... das ist schon PRIMA. Jetzt sollen nur noch ein NEUES Sheet erstellt weden in das dann die kopierten in die entsprechende Stelle eingefügt werden sollen.
Dennoch Danke für bisherige Lösung.
Gruß, Dieter(Drummer)
PS Wie ist denn die Frage zum Haus von Nikolaus?

AW: Danke Matthias L. Noch etwas ...
28.12.2014 19:57:04
Matthias L
Hallo Dieter
Erstmal die Antwort auf das Erstellen des Blattes inkl. Kopieren
https://www.herber.de/bbs/user/94618.xlsm
Ob es jetzt sinnvoller ist mit dem Hochkomma zu arbeiten, oder wie Luc vorschlägt mit #!
kann ich nicht beurteilen. Da fehlen mir die Erfahrungen.
Ist das erledigt kommt dann meine Nachfrage.
Ich will hier nichts durcheineanderwirbeln ;-)
Gruß Matthias

Anzeige
AW: Das ist schon prima, Es fehlt nur ...
28.12.2014 20:08:34
Dieter(Drummer)
... im Modul:
  • 
    Sub HochzeichenSetzen()
    Dim X&
    For X = 1 To 3
    If Len(Cells(X, 1).PrefixCharacter) <> 1 Then
    If Cells(X, 1).HasFormula Then
    Cells(X, 2).Formula = "'" & Cells(X, 1).Formula
    Else
    Cells(X, 2).Value = Cells(X, 1).Value
    End If
    End If
    Next
    MsgBox ";o)"
    End Sub
    


  • Fehlt mir die Anpassung, dass der Bereich A1 bis N426 abgesucht wird und wenn da eine Formel ist, diese ein Hochkomma bekommt. Es soll dann natürlich Dein Kopiermakro es in das neue Blatt einfügen.
    Wär toll, wenn das noch geht ...
    Gruß, Dieter(Drummer

    Anzeige
    Hää ?
    28.12.2014 20:23:23
    Matthias L
    Hallo
    Hast Du Dir die neue Datei nicht angesehen?
    Da steht doch ein ganz anderer Code drin.
    Jedenfalls der dem Button zugewiesene Code
    Dim rng As Range
    'erstelle neues Blatt Nem = "Neu"
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Neu"
    Application.ScreenUpdating = False
    With Tabelle1 'CodeName der Tabelle1
    For Each rng In .Range("A1:N25")
    If rng.HasFormula Then
    Worksheets("Neu").Range(rng.Address).Formula = "'" & rng.FormulaLocal
    End If
    Next
    End With
    
    Ich dachte jetzt Du kannst Range("A1:N25") selbst ändern in Range("A1:N426")
    Da staune ich aber jetzt das Du das nicht geschafft hast.
    Gruß Matthias

    Anzeige
    AW: Sorry Matthias L, Du hast recht ...
    28.12.2014 20:25:15
    Dieter(Drummer)
    ... Deine neue Datei und das Makro passt prima!
    Danke Dir und nun Deine Frage Zu Haus vom Nikolaus.
    Gruß, Dieter(Drummer)

    Meine Frage
    28.12.2014 20:34:24
    Matthias L
    Hallo Dieter
    Warum wird die Reihenfolge der angewählten Positionen nicht korrekt
    in den Versuchen dokumentiert.
    Userbild
    Ich gehe von
    1 nach 2 dann von
    2 nach 3 dann von
    3 nach 4
    Die Dokumentation des Versuchs ist aber eine andere nicht vollzogene Reihenfolge!
    Oder hab ich etwas falsch verstanden?
    Gruß Matthias

    Anzeige
    AW: Gute Frage ...
    28.12.2014 20:49:47
    Dieter(Drummer)
    Hi Matthias L,
    hier ist das Makro, dass wohl dafür verantwortlich ist. Ich bin nicht so fit, um da den Fehler zu erkennen:

  • 'Von Beverly 25.10.2012
    Sub Auflisten()
    'Call SchutzAus
    Dim lngZeile As Long
    Dim btnElement As Button
    Dim intSpalte As Integer
    intSpalte = 2
    lngZeile = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
    Count) + 1
    If lngZeile < 20 Then lngZeile = 20
    If lngZeile < 45 Then
    Cells(lngZeile, 1) = "V" & lngZeile - 19
    For Each btnElement In ActiveSheet.Buttons
    If InStr(btnElement.Caption, " > ") > 0 Then
    If btnElement.Font.ColorIndex = 3 Then
    Cells(lngZeile, intSpalte) = btnElement.Caption
    intSpalte = intSpalte + 1
    End If
    End If
    Next btnElement
    Else
    MsgBox "Keine weiteren Varianten möglich"
    End If
    Range("A5") = " Fertig. "
    bytZaehler = 0
    'Schrift in A5 Laufschrift. Ursprung: www.excel-lex.de Nr. 30 6 Nr. 140 Laufschrift
    '
    
    
    Sub Laufschrift()
    Dim rng As Range
    Dim iCounter As Integer
    Application.EnableCancelKey = xlErrorHandler
    Set rng = Range("A5")
    On Error GoTo ERRORHANDLER
    For iCounter = 1 To 39
    rng.Value = Right(rng.Value, Len(rng.Value) - 1) + _
    Left(rng.Value, 1)
    Sleep 100
    Next iCounter
    'Mx: In A5 Text löschen
    Range("A5").ClearContents
    'Call SchutzEin
    ERRORHANDLER:
    End Sub
    

  • Wäre natürlich schön, wenn die richtige, gesetzte Reihenfolge gelistet würde.
    Nochmal Dankle für Deine bisherige tolle Hilfe.
    Gruß, Dieter(Drummer)

    Anzeige
    Vielleicht hat es ja Beverly so gewollt ...
    28.12.2014 21:16:23
    Matthias L
    Hallo
    Zitat

    Ich bin nicht so fit, um da den Fehler zu erkennen:
    Ob das nun ein Fehler ist weiß ich ja nicht. Ich dachte Du kannst es mir erklären.
    Das dieser Part nun von Karin ist, konnte ich nicht wissen.
    Hab zwar Beverly im Code gelesen, aber da check ich ja noch nicht den Code.
    Ich überfliege den Code immer nur nach "ungewöhnlichen/verdächtigen Strings"
    Wenn ich es als ungefährlich erkenne, analysiere ich es nicht mehr
    sondern starte die Datei mit aktivierten Makros und schau mir an was da so passiert
    Schade, ich dachte Du kannst mich da aufklären.
    Gruß Matthias

    Anzeige
    AW: Leider nicht, da ich darin nicht fit bin!
    28.12.2014 21:30:04
    Dieter(Drummer)
    Ich werde versuchen, es mit Beverly's Hilfe möglich ist, dass es in der richtigen Reihenfolge gelistet wird.
    Gruß, Dieter(Drummer) und einen schönen Abend und Danke für Hilfe.

    Gerne ... schönen Abend auch Dir ... kwT
    28.12.2014 21:45:26
    Matthias L

    AW: Der gesuchte Bereich ist immer A1:N426
    28.12.2014 18:35:34
    Dieter(Drummer
    ... zur Info.
    Gruß, Dieter(Drummer)

    AW: Hochkomma vor alle Formeln mit VBA
    28.12.2014 20:11:02
    Herby
    Hallo Dieter,
    anbei eine weitere Alternative aber ohne dem Ansatz mit dem Hochkomma. Probiers einfach mal aus:
    https://www.herber.de/bbs/user/94619.xlsm
    Viele Grüße
    Herby

    AW: Danke Herby, das ist auch sehr gut.
    28.12.2014 20:28:02
    Dieter(Drummer)
    Danke Dir...
    und werde es in Ruhe weiter ausprobieren, es funktionert aber sehr gut.
    Gruß, Dieter(Drummer)

    Anzeige
    Hallo Herby, bei mir passiert null,nix
    28.12.2014 20:45:40
    Matthias L
    Hallo
    Es wird kein neues Blatt bei mir angelegt, somit auch nichts kopiert.
    Nur zur Info
    EnableEvents=True
    Hab ich was verpasst?
    Die Datei hab ich jetzt 3x getestet
    Gruß Matthias

    AW: Ich hatte auch das Problem ...
    28.12.2014 20:55:46
    Dieter(Drummer)
    ... und habe einen neuen Button eingefügt für Makro von Herby.
    Hier meine angepasste Datei: https://www.herber.de/bbs/user/94621.xlsm
    Gruß, Dieter(Drummer)

    ok, Code war einem falschen Button zugewiesen kwT
    28.12.2014 21:23:51
    Matthias L

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige