Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Konstante definieren

Konstante definieren
02.04.2007 12:10:15
gerhard
Hallo Experten,
ich bekomme die Fehlermedlung
"Mehrfachdeklaration im aktuellen Gültigkeitsbereich"
bei folgendem Code:
If Worksheets("Dateneingabe").Range("b391") = "VKB" Then
Const dateiname = "c:\bravovkb.xls"
Else
Const dateiname = "c:\bravo.xls"
End If
Workbooks(dateiname).Sheets("Dateneingabe").Range("b2") = ActiveWorkbook.Sheets(sTBName).Cells(lRow, 1)
Warum kann ich Dateinamen nicht in Abhängigkeit von "B391" definieren?
Wie kann das Problem gelöst werden?
viele grüsse
gerhard

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

Betreff
Datum
Anwender
Anzeige
AW: Konstante definieren
02.04.2007 12:37:34
Oberschlumpf
Hi Gerhard
Laut deines Codes ist "dateiname" keine Konstante, sondern eine Variable - sie erhält ja je nach erfüllter Bedingung unterschiedliche Werte.
Versuch es mal so:
If Worksheets("Dateneingabe").Range("b391") = "VKB" Then
dateiname = "c:\bravovkb.xls"
Else
dateiname = "c:\bravo.xls"
End If
Workbooks(dateiname).Sheets("Dateneingabe").Range("b2") = ActiveWorkbook.Sheets(sTBName).Cells(lRow, 1)
Konnte ich helfen?
Ciao
Thorsten
AW: Konstante definieren
02.04.2007 13:02:28
gerhard
Hallo Thorsten,
wie folgt habe ich nun den Code:
' Ausdruck Stapeldruck Adressen - Personalisieren
Const sWBName = "C:\adressen.xls" ' Arbeitsmappe mit den Adressen
Const sTBName = "Tabelle1" ' Tabellenblattname mit den Ektietten
Dim lRow As Double
Dim sDateiname As String
sDateiname = ActiveWorkbook.FullName
Application.ScreenUpdating = False
Workbooks.Open sWBName
lRow = 3
Do While Sheets(sTBName).Cells(lRow, 1) ""
'ActiveWorkbook.Sheets(sTBName).Range( _
Sheets(sTBName).Cells(lRow, 1), _
Sheets(sTBName).Cells(lRow, 4)).PrintOut preview:=True
Workbooks(sDateiname).Sheets("Dateneingabe").Range("b2") = "xxx2"
In der letzten Zeile "workbooks(.... erhalte ich den Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs.
was ist falsch?
viele grüsse
gerhard
Anzeige
AW: Konstante definieren
02.04.2007 13:16:00
Oberschlumpf
Hi Gerhard
Diese Zeilen sind falsch:
Const sWBName = "C:\adressen.xls" ' Arbeitsmappe mit den Adressen
Const sTBName = "Tabelle1" ' Tabellenblattname mit den Ektietten
ersetze sie komplett durch diese Zeilen:
Dim sWBName As String, sTBName As String
sWBName = "C:\adressen.xls" ' Arbeitsmappe mit den Adressen
sTBName = "Tabelle1" ' Tabellenblattname mit den Ektietten
Konnte ich helfen?
Ciao
Thorsten
AW: Konstante definieren
02.04.2007 13:20:59
gerhard
Hallo Thorsten,
der Code ist wie folgt:
Dim sWBName As String, sTBName As String
Dim lRow As Double
Dim sDateiname As String
sWBName = "C:\adressen.xls" ' Arbeitsmappe mit den Adressen
sTBName = "Tabelle1" ' Tabellenblattname mit den Ektietten
sDateiname = ActiveWorkbook.FullName
Application.ScreenUpdating = False
Workbooks.Open sWBName
lRow = 3
Do While Sheets(sTBName).Cells(lRow, 1) ""
'ActiveWorkbook.Sheets(sTBName).Range( _
Sheets(sTBName).Cells(lRow, 1), _
Sheets(sTBName).Cells(lRow, 4)).PrintOut preview:=True
Workbooks(sDateiname).Sheets("Dateneingabe").Range("b2") = "xxx2"
die Fehlermeldung ist immer noch vorhanden (Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs)
viele grüsse
gerhard
Anzeige
AW: Konstante definieren
02.04.2007 16:08:08
Rudi
Hallo,
natürlich ergibt das einen Fehler. Hast du mal den Inhalt von sDateiname geprüft? Da steht der volle Dateiname, also inkl Pfad drin.
Ändere so:
sDateiname = ActiveWorkbook.Name
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Konstante definieren
02.04.2007 12:39:00
Andi
Hi,
Dein Dateiname ist eben genau keine Konstante, sondern eine Variable, weil es ja verschiedene mögliche Werte gibt.
Deklariere die Variable am Anfang der Prozedur mit
Dim Dateiname as String
und weise die Werte dann folgendermaßen zu:
If Worksheets("Dateneingabe").Range("b391") = "VKB" Then
dateiname = "c:\bravovkb.xls"
Else
dateiname = "c:\bravo.xls"
End If
Schönen Gruß,
Andi
Anzeige
AW: Konstante definieren
02.04.2007 13:09:00
gerhard
Hallo Andi,
mit ActiveWorkbook.FullName könnte ich besser arbeiten als mit der IF-Abfrage.
Wie folgt habe ich nun den Code:
' Ausdruck Stapeldruck Adressen - Personalisieren
Const sWBName = "C:\adressen.xls" ' Arbeitsmappe mit den Adressen
Const sTBName = "Tabelle1" ' Tabellenblattname mit den Ektietten
Dim lRow As Double
Dim sDateiname As String
sDateiname = ActiveWorkbook.FullName
Application.ScreenUpdating = False
Workbooks.Open sWBName
lRow = 3
Do While Sheets(sTBName).Cells(lRow, 1) ""
'ActiveWorkbook.Sheets(sTBName).Range( _
Sheets(sTBName).Cells(lRow, 1), _
Sheets(sTBName).Cells(lRow, 4)).PrintOut preview:=True
Workbooks(sDateiname).Sheets("Dateneingabe").Range("b2") = "xxx2"
In der letzten Zeile "workbooks(.... erhalte ich den Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs.
was ist falsch?
viele grüsse
gerhard
Anzeige
AW: Konstante definieren
02.04.2007 20:13:00
Gerd
Hallo Gerhard,
ändere mal:
sDateiname = ActiveWorkbook.Name
und ein Sheet mit dem exakt dem Namen "Dateneingabe" muss darin natürlich vorhanden sein.
Gruß
Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige