Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
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

Pro Zelle Zelle aktivieren und "Enter"

Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 08:53:17
Simon
Hallo zusammen,
ich habe dank diesem Beitrag: https://www.herber.de/forum/archiv/208to212/210452_Textstring_in_Formel_umwandeln.html,
eine sehr lange Liste von Textketten in Formeln umgewandelt, im nächsten Schritt kann ich diese als Werte einfügen. Die Formel aktiviert sich aber erst als Formel wenn ich die Zelle aktiviere und "Enter" drücke.
Mein Makro Code tut für Excel aber noch nicht das was ich manuell mache: reinklicke und "Enter" drücken: Das kann doch eigentlich kein Problem sein, was mache ich falsch?

Sub Bereichbearbeiten()
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Select
Zelle.Activate
Next Zelle
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 08:58:40
{Boris}
Hi,
das Editieren ("Reinklicken") einer Zelle kannst Du nur mit OnKey simulieren. Dein bisheriger Code selektiert die Zellen nur.
Aber zeig doch mal einen Beispielstring in Deiner Beispieldatei - vielleicht gibt es eine bessere Lösung als OnKey.
VG, Boris
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 09:36:04
Simon
https://www.herber.de/bbs/user/155319.xlsx , Dateibeispiel. Etwas abstrakt, aber nach der Umwandlung würde es ja immerhin Fehler zeigen.
Vielen, vielen Dank!
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 09:56:19
{Boris}
Hi,
mit OnKey hatte ich mich verschrieben - sollte natürlich SendKeys heißen.

Sub F2_Enter()
Dim C As Range
For Each C In Selection
Application.SendKeys "{F2}"
Application.SendKeys "{Enter}"
Next C
End Sub
Den Code NICHT aus dem VBA-Editor heraus starten sondern aus dem Tabellenblatt. Vorher die Zellen selektieren, wo das passieren soll.
VG, Boris
Anzeige
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 10:38:06
peterk
Hallo

Sub Bereichbearbeiten()
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Value = Zelle.Value
Next Zelle
End Sub
Peter
in Formel umwandeln
22.09.2022 10:51:47
Rudi
Hallo,
sollte so funktionieren:

Sub aaa()
Dim r As Range
Set r = Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp))
r.FormulaLocal = r.Value
End Sub
Gruß
Rudi
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 09:42:08
Oberschlumpf
Hi Simon
der Vba-Code...

Range("A1").Value = "=A2+A3"
...schreibt in die Zelle A1 einfach nur den Text "=A2+A3" rein - wie in deiner Bsp-Datei.
Aber der Code...

Range("A1").FormulaLocal = "=A2+A3"
...schreibt in die Zelle A1 auch ganz genau die Formel =A2+A3 rein, die eben auch sofort die Summe aus A2 und A3 errechnet.
Du könntest dir also mal die Funktion .FormulaLocal genauer ansehen.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 09:49:31
Simon
Nein, nicht so ganz, ich habe den String per Verknüpfung und Formel erzeugt. Im Orginal sieht das in etwa so aus: ="="&$AO$1&$AP$1&$AO$1&AO1&"*"&$AO$1&$AQ$1&AN2&"/"&$AO$1&$AQ$1&$AO$1&AO1, das habe ich mit Wechseln umgewandelt und als Werte eingefügt. Und jetzt kann ich es eben nur per "Enter" aktivieren. Ich verstehe irgendwie nicht warum, oder was das Problem von dem String ist.
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 09:53:53
Simon
Okay, manchmal sitzt man halt auch einfach auf dem Schlauch, hiermit löse ich mein Problem selbst:
Public Sub Test_f2()
'Alle Werte in Zahlenwerte umwandeln
Dim zelle2 As Object
For Each zelle2 In Selection
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Anzeige
und als Werte eingefügt
22.09.2022 09:58:48
Rudi
Hallo,
anstatt als Werte als .FormulaLocal, wie Oberschlumpf schon schrieb.
Gruß
Rudi
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 10:20:08
Oberschlumpf
Hi Simon,
ich bin kein Freund von SendKeys - damit kannst du auch ganz schnell mal ne Datei bzw ihren Inhalt "zerschießen".
Ja, ich weiß, SendKeys kann einiges - trotzdem - nich meins :-)
Und wenn 2 "Hin-und-wieder-mal-Schlaue" :-) (Rudi+ich) das Gleiche vorschlagen, könnte das doch richtig sein, oder?
hier mal deine Bsp-Datei zurück
https://www.herber.de/bbs/user/155321.xlsm
Achtung!
Wunder dich nicht - deine Datei sieht noch immer so aus, wie du sie uns gezeigt hast (ich will ja "mein Feuerwerk" nich versauen...hehe :-) )
Schau dir erst mal den hinzugefügten Code im VBE an - SO meinte ich das mit Formula...
Starte jetzt das Makro
Es werden nur die Inhalte in den Zeilen 2 bis 18 umgewandelt
(ich hatte keine Lust zu prüfen, ob das auch mit Leerzellen funktioniert)
Aber nun siehst du ja, wie das Ganze auch ohne SendKeys machbar ist - zumindest mit deiner Bsp-Datei.
Wenn das mit deinen Original-Texten, die zu echten Formeln werden sollen, nicht funktioniert - dann haste uns die falsche Bsp-Datei gezeigt!^^
Hilfts denn?
Ciao
Thorsten
Anzeige
AW: Pro Zelle Zelle aktivieren und "Enter"
22.09.2022 12:39:47
Daniel
Hi
Markiere den Bereich und führe die Menüfunktion ERSETZEN aus.
Ersetze dabei das "=" durch "=".
Wenn du das Ersetzten anwendest, dann ist das für Excel wie eine Neueingabe, dh es prüft, ob der neu entstandene Text eine Zahl ein Datum oder eine Formel sein könnten und wandelt ggf in das entsprechende um.
Also genau so wie in die Bearbeitungszeile klicken und dann Enter drücken, nur dass du das mit Ersetzen für viele Zellen gleichzeitig machen kannst, sofern es ein Zeichen gibt, Fass in allen Zellen vorkommt.
Beachte, dass bei Formeln diese dann mit A1-Adressen geschrieben sein müssen.
Wenn du das Ersetzen per VBA ausführen lässt Columns(1).Replace "=", "=", xlpart, müssen die Formeln amerikanisch geschrienen sein, dh englische Funktionsnamen, Komma als Parametertrenner und Punkt als Dezimalzeichen.
Bei manueller Ausführung müssen die Formeln jedoch landestypisch geschrieben sein.
In deinem Fall mit den einfachen Rechenformeln macht das keinen unterschied.
Per VBA könntest auch noch die Umwandlung mit
Selection.Formular = Selection.Value
machen. Das würde sogar funktionieren, wenn noch die Erzeugerformeln vorliegen und spart einen Schritt. Hierbei könnte man auch arbeiten, wenn die Formeln in " deutsch " erzeugt wurden, dann mit
Selection.FormulaLocal = Selection.Value
Gruß Daniel
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige