Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1316to1320
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

Befehl-Kompatibilität Excel 07 zu 03

Befehl-Kompatibilität Excel 07 zu 03
03.06.2013 16:20:04
Malte
Hallo,
ich habe in Excel 2007 ein Makro geschrieben. Leider habe ich nun erfahren, dass dieses Makro auf Excel 2003 verwendet werden soll.
Ein paar Befehle wie z.B. cells(1,1)="abc" habe ich schon abgeändert.
Für folgenden Befehl fehlt mir aber das Gegenstück in Excel 2003:
Sheets("Berechnung").Range(Cells(36, 21 + SpaltenZaehler), Cells(intLetzteZeile, 21 + SpaltenZaehler)).Value = _
Sheets("Berechnung").Range("G36:G" & intLetzteZeile).Value
Kann mir jemand helfen, diese Zeile für Excel 03 funktionabel zu gestalten?
Vielen Dank!
Gruß
Malte

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
welche Werte haben denn die Variablen
03.06.2013 16:30:00
Matthias
Hallo
Ich tippe einfachmal das 21 + SpaltenZaehler > 256 ist.
In Excel vor XL2007 gab es max. 256 Spalten. Ab xl2007 sind es wesentlich mehr
Vielleicht liegt dort der Hase begraben.
Ist aber nur eine Vermutung.
Gruß Matthias

AW: welche Werte haben denn die Variablen
03.06.2013 16:38:35
Malte
Hallo,
vielen Dank für den Hinweis.
Der Spaltenzähler läuft von 0 bis ca. 10, also maximal 31 Spalten.
Daran liegt es nicht :)
Trozdem Danke!
Gruß

AW: Befehl-Kompatibilität Excel 07 zu 03
03.06.2013 16:33:42
Daniel
Hi
das was du da an Code zeigst, sollte sowohl in 2003 als auch in 2007 problemlos funktionieren.
VBA wurde ja nicht komplett neu geschrieben, sondern lediglich um einige Funktionen erweitert (wenige wurden auch entfernt) und an die neuen Excelfunktionalitäten angepasst.
was fehlt, ist die Tabellenblattangabe vor den Cells innerhalb der Range!
Cells ohne Tabellenblattangabe beziehen sich in der Regel (Code im allgemeinen Modul) immer auf das aktive Tabellenblatt.
bei deinem Konstrukt kann es vorkommen, daß die Range in einem anderen Tabellenblatt liegen soll als die Range, die sie definieren sollten und das klappt nicht (weder in 2003, noch 2007)
Richtig wäre:
Range(Sheets("Berechnung").Cells(36, 21 + SpaltenZaehler), Sheets("Berechnung").Cells(intLetzteZeile, 21 + SpaltenZaehler)).Value = Sheets("Berechnung").Range("G36:G" & intLetzteZeile).Value
oder, wenn der Code in einem Tabellenblattmodul liegt:
Sheets("Berechnung").Range(Sheets("Berechnung").Cells(36, 21 + SpaltenZaehler), Sheets("Berechnung").Cells(intLetzteZeile, 21 + SpaltenZaehler)).Value = Sheets("Berechnung").Range("G36:G" & intLetzteZeile).Value
Gruß Daniel

Anzeige
AW: Befehl-Kompatibilität Excel 07 zu 03
03.06.2013 16:39:57
Malte
Hallo,
danke für die Antwort! Ich werde es morgen direkt in Excel 03 ausprobieren (habe zuhause leider nur 2010).
In 2010 funktioniert es aber auch ohne die Sheet-Angabe.
Danke!
Gruß

AW: Befehl-Kompatibilität Excel 07 zu 03
03.06.2013 17:20:13
Daniel
es funktioniert, wenn das Sheet "Berechnung" aktiv ist.
sollte ein anderes Sheet aktiv sein, wenn der Code ausgeführt wird, dann solltest du eine Fehlermeldung erhalten.
Gruß Daniel

AW: Befehl-Kompatibilität Excel 07 zu 03
03.06.2013 16:33:46
Rudi
Hallo,
Ein paar Befehle wie z.B. cells(1,1)="abc" habe ich schon abgeändert.
das geht doch in jeder Version.
Sheets("Berechnung").Range(Cells(36, 21 + SpaltenZaehler), Cells(intLetzteZeile, 21 + SpaltenZaehler)).Value = _
Sheets("Berechnung").Range("G36:G" & intLetzteZeile).Value

Mangelhafte Referenzierung. Das geht in jeder Version schief.
With Sheets("Berechnung")
.Range(.Cells(36, 21 + SpaltenZaehler), .Cells(intLetzteZeile, 21 + SpaltenZaehler)).Value = . _
Range("G36:G" & intLetzteZeile).Value
End With

Gruß
Rudi

Anzeige
AW: Befehl-Kompatibilität Excel 07 zu 03
03.06.2013 16:43:52
Malte
Hallo,
ich dachte auch das der Befehl "cells()" überall geht, aber bei solchen Formulierungen hat er in 03 genörgelt:
Cells(dbStartZelle + dbN, 4) = dbDmDt
als ich es mit range("D31")=dbDmDt geschrieben hatte, kam der Fehler nicht mehr.
Was meinst Du mit "mangelhafter Referenzierung" genau? Sage ich zu ungenau, WO ich die Werte haben möchte? Muss ich Excel quasi eine genauere Wegbeschreibung geben? In 20100 hat dies so funktioniert, aber ich werde das dann auch mal in 2010 übernehmen.
Vielen Dank!
Gruß!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige