Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1324to1328
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

Sheets mit indexierte Benennung

Sheets mit indexierte Benennung
12.08.2013 10:11:44
Marc
Hallo,
da ich ein wenig ängtlich bin, dass die Benutzer die Blattnamen ändern könnten, schreibe ich meine Programmierung um und benutze die indexierte Benennung.
Allerdings habe ich an einer Stelle eine Sache, die ich mir nicht erklären kann.

Dim Betrag as Single
If Sheets("Anzahlungen Kosten").Cells(Reihe, 5).Value = "" Then
Betrag = 0
Else
Betrag = Sheets("Anzahlungen Kosten").Cells(Reihe, 5).Value
End If

Die Zelle ist als "Währung" definiert und auch abgesichert.
Sie kann nur Space oder einen numerischen Wert beinhalten.
Der Code wie oben funktionert einwandfrei.
Benutze ich allerdings die indexierte Benennung der Blätter, sprich z.B. "Sheets(1)", dann gibt es einen Laufzeitfehler 13 bei der Übergabe in die Variable.
Selbst der Versuch, das Ganze mittels CSng(Sheets(1).Cells(Reihe, 5).Value) scheitert.
Hat jemand eine Idee zur Lösung dieser, für mich, unverständlichen Eigenart?
Vielen Dank

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheets mit indexierte Benennung
12.08.2013 10:31:52
JACKD
Hallo Marc
warum nicht gleich als Currency dimmen wenns eh nur ne Währung ist.
Ansonsten wenn du über den Codenamen gehen willst, sieht das Makro etwas anders aus
angenommen die Tabelle heisst tabAnzKost
dann kannst du mit tabAnzKost.cells(....... ) diese unabhängig des dargestellten namen (in der Tabelle) ansprechen. (den Codenamen siehst du im VBAProjekt-dort kannst du ihn auch ändern)
Grüße

AW: Sheets mit indexierte Benennung
12.08.2013 13:03:10
Marc
Hallo Jackd,
Ich habe die Dimensionierung jetzt angepasst. Ist effektiv besser so.
Mit der Benennung als CodeName funktioniert es einwandfrei.
Danke. Problem gelöst.
Trotzdem finde ich es eigenartig, dass Vba für Excel nur durch eine andere Benennungsart auch anders reagiert...

Anzeige
AW: Sheets mit indexierte Benennung
12.08.2013 13:07:16
JACKD
Hallo Marc.
Excel reagiert nicht anders.
Es ist lediglich so das du wenn das Blatt "Kosten" heisst du es nicht als "Sheet1" ansprechen kannst. Das würde nur Funktionieren wenn das Blatt eben auch so heisst.
Sheet1 ist in dem Fall nämlich nicht die Indexbezeichnung sondern der Name.
Grüße

AW: Sheets mit indexierte Benennung
12.08.2013 13:37:41
Marc
Hallo Jackd,
ich glaube wir haben uns missverstanden.
Es gibt ja drei Schreibweisen:
1. Sheets ("Name").usw... -- Benennung nach Anzeige des Blattnamens am Bildschirm der Benutzer
2. Sheets(1).usw... -- indexierte Benennung
3. Tabelle1.usw... -- Benennung nach CodeName
1 und 3 funktionieren in meinem Beispiel
2 jedoch nicht. Das ist was ich merkwürdig finde.
Aber egal, die Lösung ist ja gefunden.
Nochmals danke sehr für Deine Hilfe.

Anzeige
AW: Sheets mit indexierte Benennung
12.08.2013 13:45:15
JACKD
Ich glaub das geht nur über activate ..

Sheets(1).Activate
With ActiveSheet
.Cells(1, 1).Select
End With
grüße

AW: Sheets mit indexierte Benennung
12.08.2013 14:19:47
Marc
Was aber in den seltensten Fällen erwünscht ist... ;-)
Ich probiers bei Gelegennheit mal.
Danke.

AW: Sheets mit indexierte Benennung
12.08.2013 14:27:04
Luschi
Hallo Marc,
wenn Du Tabellen-Arbeitsblätter in indizierter Form ansprechen willst, benutze nicht Sheets(1) sondern Worksheets(1).
Zur Sheets-Sammlung gehören alle Tabellenblätter, also auch Diagrammblätter, Makrovorlagen & Excel-Dialoge.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Sheets mit indexierte Benennung
12.08.2013 14:39:11
Marc
Hallo Luschi,
Heureka... damit geht auch diese Variante.
Danke, wieder was dazu gelernt.
Gruß
aus Belgien.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige