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

ActiveSheet.CodeName

ActiveSheet.CodeName
29.09.2016 12:32:52
Hartmut_M
Hallo, könnt ihr mir bitte da helfen?
Ich möchte per VBA den Codenamen des aktiven Tabellenblattes auslesen und als Variable speichern. Habe dafür diesen Code:
'Codename der aktiven Tabelle als Variable
Dim Tabelle$
Tabelle = ActiveSheet.CodeName
Lasse ich das Makro automatisch laufen, wird die variable nicht gefüllt.
Prüfe ich im Einzelschritt-Modus, wird der Codename in die Variable übernommen.
Hat jemand eine Erklärung dafür?
Gruß Hartmut

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

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet.CodeName
29.09.2016 12:39:08
Rudi
Hallo,
Lasse ich das Makro automatisch laufen, wird die variable nicht gefüllt.
woher weißt du das?
Gruß
Rudi
AW: ActiveSheet.CodeName
29.09.2016 14:56:34
Hartmut_M
Hallo Rudi,
weil der Code abbricht. Beim debuggen sehe ich dann, dass die Variable leer ist.
Gruß Hartmut
AW: ActiveSheet.CodeName
29.09.2016 12:43:28
JoWE
Hallo Hartmut,
wenn schon "Tabelle$", dann auch "Tabelle$ = ActiveSheet.codename"
Sub test()
Dim Tabelle$
Tabelle$ = ActiveSheet.CodeName
MsgBox Tabelle$
End Sub
so klappts bei mir.
Gruß
Jochen
AW: ActiveSheet.CodeName
29.09.2016 12:50:26
Mullit
Hallo,
das Dollar-Zeichen ist das Typenkennzeichen für Strings, sollte also genauso funktionieren, wie von Dir geschrieben, zeig mal Deine ganze Proc....
Gruß, Mullit
Anzeige
wenn schon "Tabelle$", ...
29.09.2016 12:51:01
Rudi
Hallo Jochen,
das geht auch mit Tabelle = ...
$ ist nur das Typkennzeichen. Ersetzt As String.
Gruß
Rudi
AW: wenn schon "Tabelle$", ...
29.09.2016 12:58:57
JoWE
Aah! Danke.
Gruß
Jochen
AW: ActiveSheet.CodeName
29.09.2016 12:45:39
kultnoob
In Tabelle 1

Option Explicit
Sub test()
Dim LOL As String
LOL = ActiveWorkbook.ActiveSheet.Name
End Sub

In Modul 1

Option Explicit
Sub test()
Dim LOL As String
LOL = ActiveWorkbook.Sheets(1).Name
End Sub

Thema verfehlt. 6
29.09.2016 12:48:21
Rudi
Hallo,
Name ist was ganz anderes als CodeName.
Gruß
Rudi
AW: Thema verfehlt. 6
29.09.2016 14:15:57
Hartmut_M
Hallo,
hier ist der gesamte Code. Die Ausführung starte ich durch einen Button auf einem Tabellenblatt.
Habe jetzt folgendes festgestellt: Bei Betätigung des Buttons, bricht das Programm ab, weil sich die variable "varTabelle" nicht füllt (varTabelle = ActiveSheet.CodeName).
Jetzt das, was ich nicht verstehe. Öffne ich vorher den VBA-Editor und klicke dann auf den Button im Tabellenblatt, läuft das Makro komplett ohne Fehler durch, genauso wie im Einzelschritt mit F8.
Sub Dateiimport()
'Bestandskonto als Variable deklarieren
Dim GL$
GL = Worksheets("Deckblatt").Range("C41").Value
'Prüfen, ob csv-Datei vorhanden
Dim Pfad$
Pfad = "Y:\Desktop\Fachkontrolle\" & GL & ".csv"
If Dir(Pfad) = "" Then
MsgBox "Die CSV-Datei mit der Bestandsnummer " & GL & vbLf & "ist nicht im Ordner  _
Fachkontrolle auf dem Desktop vorhanden!"
Exit Sub
End If
'Prüfen ob Tabellenblatt mit GL-Konto existiert
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Sheets
If Ws.Name = GL Then Exit Sub
Next Ws
'Neues Tabellenblatt erzeugen mit GL-Kontonummer
ThisWorkbook.Worksheets.Add.Name = GL
'Tabellenblatt aus CSV importieren
Dim Dateiname, Tabellenblatt$
Dim Wsh As Worksheet
Dateiname = "Y:\Desktop\Fachkontrolle\" & GL & ".csv"
Tabellenblatt = GL
Set Wsh = ActiveWorkbook.Sheets(Tabellenblatt)
If Dateiname  False Then
Application.ScreenUpdating = False
Workbooks.Open Filename:=Dateiname, Local:=True
ActiveSheet.UsedRange.Copy Wsh.Cells(1)
ActiveWorkbook.Close SaveChanges:=False
Application.ScreenUpdating = True
End If
Range("A1:V1").AutoFilter
'Codename der aktiven Tabelle als Variable
Dim varTabelle$
varTabelle = ActiveSheet.CodeName
'Makro in neues Tabellenblatt kopieren
Dim x As Integer
With ThisWorkbook.VBProject.VBComponents(varTabelle).CodeModule
x = .CreateEventProc("Change", "Worksheet")
.InsertLines x + 1, "Dim NR As String, VN As String"
.InsertLines x + 2, "Set Target = Application.Intersect(Target, Range(""V:V""))"
.InsertLines x + 3, "If Target Is Nothing Then Exit Sub"
.InsertLines x + 4, "If Target.Value = ""X"" or Target.Value = ""x""  Then"
.InsertLines x + 5, "SNR = Target.Offset(0, -20).Value" 'ist zu ändern wenn X nicht in  _
Spalte V steht
.InsertLines x + 6, "VN = Target.Offset(0, -18).Value" 'ist zu ändern wenn X nicht in  _
Spalte V steht
.InsertLines x + 7, "Sheets(""Bericht"").Select"
.InsertLines x + 8, "Sheets(""Bericht"").Range(""A5"").Activate"
.InsertLines x + 9, "10:"
.InsertLines x + 10, "If ActiveCell  """" Then"
.InsertLines x + 11, "ActiveCell.Offset(1, 0).Activate"
.InsertLines x + 12, "GoTo 10"
.InsertLines x + 13, "Else"
.InsertLines x + 14, "ActiveCell.Value = SNR"
.InsertLines x + 15, "ActiveCell.Offset(0, 1).Value = VN"
.InsertLines x + 16, "ActiveCell.Offset(0, 2).Select"
.InsertLines x + 17, "End If"
.InsertLines x + 18, "End If"
End With
End Sub 

Anzeige
AW: ActiveSheet.CodeName
29.09.2016 15:08:59
Hartmut_M
Hallo Kultnoob,
ich brauche nicht den Namen sondern den CodeName.
Ist für den weiteren Makroverlauf erforderlich.
Gruß Hartmut

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige