Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Fehler im VBA-Code

Betrifft: Fehler im VBA-Code von: WalterK
Geschrieben am: 21.07.2013 18:04:24

Hallo,

ich benötige Eure Hilfe bei folgendem Code:
--> Der Code ist in einem allgemeinen Modul gespeichert
--> Er sucht eine bestimmte Spaltennummer in der Tabelle wsQB
--> Er wir gestartet aus der Tabelle wsNB

Er funktioniert soweit, allerdings nimmt er zur Bestimmung der gesuchten Spaltennummer nicht die Tabelle wsQB sondern die aktive Tabelle wsNB.

Was muss ich ändern, damit der Code auf die Tabelle wsQB zugreift?

Option Explicit
Sub Spaltennummer()
    Dim wsQB As Worksheet
    Dim wsNB As Worksheet
    Dim lCol As Integer, b As Integer, c As Integer, Wert As Integer
    Set wsNB = Worksheets("Namensbearbeitungstabelle")
    Set wsQB = Worksheets(Worksheets("Namensbearbeitungstabelle").Range("B16").Value)
    lCol = wsQB.UsedRange.SpecialCells(xlCellTypeLastCell).Column
    Dim LCol8 As Integer

With wsQB
For b = 1 To lCol
    For c = 1 To lCol
        If c = b Then c = c + 1
        If Cells(2, b) = Cells(2, c) And Cells(2, c + 1) = "" Then
            Wert = c + 1
            MsgBox Wert
'            LCol8 = Wert
'            wsNB.Range("F1") = LCol8
            Exit Sub
        End If
    Next c
Next b
End With
End Sub

Besten Dank für Eure Hilfe und Servus, Walter

  

Betrifft: AW: Fehler im VBA-Code von: Hajo_Zi
Geschrieben am: 21.07.2013 18:06:02

Set wsQB = Worksheets(Worksheets("Namensbearbeitungstabelle").Range("B16").Value)
die Variable ist nicht als Range Definiert.

GrußformelHomepage


  

Betrifft: AW: Fehler im VBA-Code von: WalterK
Geschrieben am: 21.07.2013 18:10:57

Hallo Hajo,

und wie mache ich das, dass die Variable als Range definiert ist?

Servus, Walter


  

Betrifft: AW: Fehler im VBA-Code von: Hajo_Zi
Geschrieben am: 21.07.2013 18:12:58

Hallo Walter,

Du willst die Variable doch als Worksheet einsetzen, warum jetzt Range?

Gruß Hajo


  

Betrifft: wenn schon With dann ... (Punkt) vor Cells von: Matthias L
Geschrieben am: 21.07.2013 18:10:21

Hallo

Wenn Du scho With benutzt solltest Du auch Cells mit (Punkt) davor benutzen

Ungetestet:

With wsQB
For b = 1 To lCol
    For c = 1 To lCol
        If c = b Then c = c + 1
        If .Cells(2, b) = .Cells(2, c) And .Cells(2, c + 1) = "" Then
            Wert = c + 1
            MsgBox Wert
'            LCol8 = Wert
'            wsNB.Range("F1") = LCol8
            Exit Sub
        End If
    Next c
Next b
End With
Gruß Matthias


  

Betrifft: Danke Matthias, so passt es! Servus, Walter von: WalterK
Geschrieben am: 21.07.2013 18:22:54




  

Betrifft: gern geschehen,Walter :-) owT von: Matthias L
Geschrieben am: 21.07.2013 18:26:46




 

Beiträge aus den Excel-Beispielen zum Thema "Fehler im VBA-Code"