Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel wählt falsche Zelle aus

Excel wählt falsche Zelle aus
20.03.2017 13:58:17
Johanna
Hallo!
Ich habe eine Exceldatei, mit der ich mittels VBA ein Tabellenblatt einer anderen Exceldatei (Ergebnisse einer Prüfung) auf ein Tabelleblatt reinkopiere und dann damit arbeite.
Die Datei, die die Testergebnisse enthält sieht folgendermaßen aus: 1. Zeile Überschrift, dann Zeilenweise die KandidatInnen mit den Ergebnissen, wobei die ersten 9 Spalten Infos sind und erst ab der 10. Spalte Ergebnisse in Form von Punken für die jeweilige Frage stehen.
Diese Zahlen sind als Text gespeichert, womit ich natürlich nicht rechnen kann (zumindest nicht die SUM Funktion verwenden kann). Ich habe versucht sie umzuformatieren (auf gefühlt 10 verschiedene Arten), was mir nie gelungen ist. Ich habe immer schon bei der Auswahl der Range eine Fehlermeldung bekommen. Also habe ich erstmal nur versucht eine einzelne Zelle umzuformatieren (mit der gefühlt einfachsten Version überhaupt) mittels:
Worksheets(b).Cells(2, 10).Value = Worksheets(b).Cells(2, 10).Value * 1
Worksheets(b).Cells(2, 11).Value = Worksheets(b).Cells(2, 11).Value * 1
Worksheets(b).Cells(3, 10).Value = Worksheets(b).Cells(3, 10).Value * 1
Worksheets(b).Cells(3, 11).Value = Worksheets(b).Cells(3, 11).Value * 1
(wobei b ein str ist)
Interessanterweise sind jetzt die Zahlen in den Zellen J5, K5, J10 und K10 als Zahl gespeichert (obwohl ja eigentlich J2, K2, J3 und K3 angesprochen wurden), der Rest noch als Text.
Vermutlich übersehe ich irgendwo etwas, aber ich sehe einfach nicht was! Würde mich echt über Hilfe freuen!
Danke schonmal!
LG,
Johanna
PS: Mein Programm hat bis jetzt immer reibungslos funktioniert. Ich wollte nur die "Umwandlung" reinprogrammieren, da Moodle seit dem letzten Update auch die Zahlen als Text speichert (anstatt als Zahl wie bisher), wenn man sich das Ergebnis als xlsx Datei herunterladen möchte.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel wählt falsche Zelle aus
20.03.2017 15:01:36
Max2
Hallo,
es wäre hilfreich wenn du uns die gefühlten 10 Arten nennen könntest.
Sonst schreiben wir dir mehrfach das rein was du bereits versucht hast.
AW: Excel wählt falsche Zelle aus
20.03.2017 18:52:25
firmus
Hi Johanna,
ich sehe zwei Probleme:
1. Es werden andere Zellen als numerisch formatiert durch "...*1" als gewünscht.
Hier würde ich mal prüfen ob nicht "hidden" Zeilen existieren.
2. Neuerdings werden Werte als "TEXT" angeliefert, die früher numerische Werte waren.
Die Multiplikation mit 1 nutzte ich bisher auch immer, bis es einige Ausfälle gab.
Heute setzte ich die Eigenschaft der Zellen von "TEXT" auf "General"
Cells.Select
Selection.NumberFormat = "General"
Hoffe das hilft Dir ein Stück weiter.
Gruß
Firmus
Anzeige
AW: Excel wählt falsche Zelle aus
23.03.2017 10:58:54
Johanna
Hallo!
Danke für die vielen raschen Antworten! Ich versuche hier gleich alle drei auf einmal zu beantworten.
Gleich einmal vorweg: Ich glaube das Problem ist erstmal nicht, wie die Zellen umgewandelt werden, sondern dass falsche Zellen angesprochen werden. Denn in jeder einzelnen der unten stehenden Versionen bekomme ich den Laufzeitfehler "1004 Anwendungs- oder Objektdefinierter Fehler" und zwar schon in der Zeile, in der ich den Bereich anspreche, den ich formatieren will.
Ich habe keine Hidden Zellen. Selbst wenn ich welche hätte, würden ja eher Zellen darüber als darunter angesprochen werden, oder habe ich hier einen Denkfehler? (Also wenn ich zB am Tabellenblatt die 5. Zeile ansprechen möchte, davor aber 2 versteckt sind (ich also eigentlich die 7. ansprechen möchte), dann würde Excel ja alles 2 Zeilen zu weit oben machen, anstatt zu weit unten.)
Die verschiedenen Arten um Text in Zahlen umzuformatieren, die ich probiert habe:
1.
For Each Zelle In Sheets(b).Range(Cells(2, 10), Cells(letzteZeile, letzteSpalte))
Zelle.Value = Zelle.Value * 1
Next
2.
For i = 2 To letzteZeile
Cells(i, 10) = CDbl(Cells(i, 10))
Cells(i, 10).NumberFormat = "General"
Next
3.
With Worksheets(b).Range(Cells(2, 10), Cells(letzteZeile, letzteSpalte))
.NumberFormat = "General"
.Value = .Value
End With
4. 'mittels Recorder aufgenommen (Spalte ohne erster Zeile in eine Zahl umformatiert und dann unter "Daten" - "Text in Spalten umwandeln")und dann für die Schleife adaptiert
For x = 10 To letzteSpalte
Sheets(b).Range(Cells(2, x), Cells(letzteZeile, x)).Select
Selection.NumberFormat = "0"
Selection.TextToColumns Destination:=Range(2, x), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Next x
Vielen Dank für die Hilfe!
LG,
Johanna
Anzeige
AW: Excel wählt falsche Zelle aus
21.03.2017 09:46:04
Daniel
Hi
um als Text gespeicherte Zahlen in echte Zahlen umzuwandeln, reicht es nicht aus, das Zahlenformat der Zellen von "Text" auf "Standard" bzw "General" zu wechseln.
Das wirkt sich nur auf zukünftige Eingaben in diese Zellen aus, vorhandene Werte bleiben was sie sind.
die effektivsten Methoden, um Text-Zahlen in echte Zahlen zu wandeln, sind:
a) Daten - Datentools - Text in Spalten
hierbei die Einstellungen so wählen, dass keine neuen Spalten entstehen.
Diese Methode kann nur für eine Spalte angewendet werden, dh bei mehreren zu bearbeitenden Spalten musst du das für jede Spalte wiederholen
b) Inhalte Einfügen mit Addieren
kopiere eine Leerzelle und füge sie mit Inhalte Einfügen und dem Vorgang Addieren in die umzuwandelnden Zellen ein.
Den Vorgang Addieren findest du in der untersten Ebene des Menüpunkts "Inhalte Einfügen"
beide Methoden lassen sich auch per VBA durchführen, der Recorder ist dein Freund.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel wählt falsche Zelle aus – Lösungen und Tipps


Schritt-für-Schritt-Anleitung

  1. Überprüfe die Zellformate: Stelle sicher, dass die Zellen, die Du umformatieren möchtest, nicht als "Text" gespeichert sind. Wähle die Zellen aus und ändere das Format auf "Allgemein".

  2. Verwende VBA zur Umwandlung: Du kannst die Zellen mit VBA ansprechen. Hier ein Beispiel:

    For i = 2 To letzteZeile
       Cells(i, 10) = CDbl(Cells(i, 10))
       Cells(i, 10).NumberFormat = "General"
    Next
  3. Testen der Umwandlung: Überprüfe nach der Umwandlung, ob die Zellen nun als Zahlen erkannt werden. Dies kannst Du mit der Funktion ISNUMBER() in Excel tun.

  4. Vermeide versteckte Zellen: Überprüfe, ob es versteckte Zeilen oder Spalten gibt, die möglicherweise die Auswahl beeinflussen. Du kannst dies tun, indem Du die gesamte Tabelle sichtbar machst.


Häufige Fehler und Lösungen

  • Falsche Zellen werden angesprochen: Dies kann passieren, wenn Du versuchst, Zellen in einem Bereich zu formatieren, der durch versteckte Zeilen oder Spalten beeinflusst wird. Achte darauf, dass Du den richtigen Bereich wählst.

  • Laufzeitfehler "1004": Dieser Fehler tritt häufig auf, wenn Du versuchst, einen Bereich anzusprechen, der nicht existiert. Überprüfe die Indizes für Zeilen und Spalten, die Du verwendest.

  • Excel wählt immer mehrere Zellen aus: Wenn Du mit der Maus eine Zelle auswählst und mehrere Zellen markiert werden, könnte ein eingestellter Bereich oder eine fehlerhafte Einstellung in Excel vorliegen. Versuche, die Excel-Einstellungen zurückzusetzen oder die Datei neu zu starten.


Alternative Methoden

  • Daten - Text in Spalten: Diese Methode ist hilfreich, um Text-Zahlen in echte Zahlen umzuwandeln. Wähle den Bereich aus und gehe zu Daten -> Datentools -> Text in Spalten. Achte darauf, dass Du keine neuen Spalten erzeugst.

  • Inhalte einfügen mit Addieren: Eine weitere effektive Methode ist das Kopieren einer leeren Zelle und das Einfügen in die Zielzellen mit der Option "Addieren". Dies wandelt die Text-Zahlen in echte Zahlen um.

  • VBA für Massenumwandlungen: Du kannst die oben genannten Methoden auch in VBA umsetzen, um mehrere Spalten gleichzeitig zu bearbeiten.


Praktische Beispiele

  1. Umwandeln von Zellen in VBA:

    For Each Zelle In Sheets(b).Range(Cells(2, 10), Cells(letzteZeile, letzteSpalte))
       Zelle.Value = Zelle.Value * 1
    Next
  2. Text in Spalten für eine ganze Spalte:

    Sheets(b).Range("A1:A10").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited
  3. Zellenformat auf "General" setzen:

    Selection.NumberFormat = "General"

Tipps für Profis

  • Verwende Application.ScreenUpdating: Setze diesen Befehl auf False, während Du die Umwandlungen durchführst, um die Leistung zu steigern:

    Application.ScreenUpdating = False
    ' Deine Umwandlungslogik hier
    Application.ScreenUpdating = True
  • Debugging in VBA: Nutze die Debugging-Tools, um zu verstehen, welche Zellen angesprochen werden und ob die erwarteten Werte vorhanden sind.

  • Moodle-Integration: Achte darauf, dass Du die neuesten Updates von Moodle im Hinterkopf behältst, da sich hier die Formate ändern können und dies Auswirkungen auf Deine Excel-Dateien hat.


FAQ: Häufige Fragen

1. Warum wählt Excel immer die falsche Zelle aus?
Dies kann an versteckten Zeilen oder Spalten liegen. Überprüfe die Sichtbarkeit der Zellen und die Auswahl.

2. Wie kann ich sicherstellen, dass Zahlen korrekt umgewandelt werden?
Verwende die Methoden "Text in Spalten" oder "Inhalte einfügen mit Addieren", um sicherzustellen, dass die Text-Zahlen in echte Zahlen umgewandelt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige