VBA laten zoeken naar de NAAM van een Excel-werkblad

Status
Niet open voor verdere reacties.

gast0667

Gebruiker
Lid geworden
20 dec 2007
Berichten
136
Hallo,

Hoe kan je VBA laten zoeken naar een naam van een werkblad ??
Ik heb onderstaande al:

Code:
Public Sub CommandButton1_Click()

Dim strNr As String
Dim strExt As String
Dim nameBlad As String
Dim NaBlad As String

nameBlad = Range("B14").Value   'Hier wordt het werkbladnummer ingevuld

On Error Resume Next
Set ws = Worksheets(nameBlad)
    If Err.Number = 0 Then
        MsgBox "bestaat al"
        Exit Sub
    Else
        ActiveSheet.Name = nameBlad     'Naam van het werkblad wordt het werkbladnummer
    End If


    strNr = Val(nameBlad)
    strExt = Right(nameBlad, 1)

    If IsNumeric(nameBlad) Then
        If nameBlad = "1" Then
            Worksheets(nameBlad).Move before:=Worksheets("Bon")
        Else
            NaBlad = nameBlad - 1
            Worksheets(nameBlad).Move after:=Worksheets(NaBlad)
        End If
    ElseIf strExt = "A" Then
        Worksheets(nameBlad).Move after:=Worksheets(strNr)
    Else
        iCharValue = Asc(Right(nameBlad, 1))
        iCharValue2 = iCharValue - 1
        strExt = Chr(iCharValue2)
        Do Until Worksheets(strNr & strExt) = True Or Teller = 26
            Teller = Teller + 1
            If Teller = 1 Then
                iCharValue = Asc(Right(nameBlad, 1))
                iCharValue2 = iCharValue - 1
                strExt = Chr(iCharValue2)
                Worksheets(nameBlad).Move after:=Worksheets(strNr & strExt)
            Else
                iCharValue2 = iCharValue2 - 1
                strExt = Chr(iCharValue2)
                Worksheets(nameBlad).Move after:=Worksheets(strNr & strExt)
            End If
        Loop
    End If

End Sub

Wil het volgende:
- Na ingave van de gebruiker zoeken naar de opvolgende werkbladnummer.
(bijvoorbeeld: werkbladen "1" , "2" , "2A" , "2C", en "4" bestaan.
Stel gebruiker geeft "1A" aan ==> werkblad plaatsen tussen "1" en "2".
Stel gebruiker gaf "1B" aan ==> werkblad plaatsen tussen "1" en "2".
Stel gebruiker gaf "2D" aan ==> werkblad plaatsen tussen "2C" en "4".
Stel gebruiker gad "2B" aan ==> werkblad plaatsen tussen "2A" en "2C"

Dus e.e.a. moet logisch geplaatst en gevonden kunnen worden.
Het mooiste zou zijn als ik wist hoe ik kan zoeken naar een naam van de werkblad zodat ik een bereik kan aangeven waarna VBA moet zoeken. En hoe ik VBA zover kan krijgen dat hij de Opvolgende alfabetletter kan zoeken en plaatsen.

Hoor het graag.
Alvast bedankt.
 
Hallo gast0667 !

Probeer het bijgevoegde bestand eens uit.

Groeten,
MDN111.
 

Bijlagen

Laatst bewerkt door een moderator:
Bijna goed.

De code moet alleen nog zien dat cijfer "2" voor "12" moet en niet andersom.
 
Hallo gast0667 !

Daar zeg je me wat ! Stom dat ik dat niet getest heb. Ben er niet fier op,
maar ik heb iets in elkaar geknutseld dat het wel doet.

Het heeft wel als beperking dat een sheetnaam kan bestaan uit alleen cijfers, alleen letters of een combinatie van beide maar dan de cijfers vooraan, gevolgd dor de letters.

Bijvoorbeeld, "1", "7A", "15C", "45675ASD"

Als je daar mee kan leven, probeer bijgevoegd bestand dan eens.

Grtz,
MDN111.
 

Bijlagen

Laatst bewerkt door een moderator:
MDN111,
Alvast bedankt voor het meedenken. De bladnamen zijn ALTIJD eerst een cijferreeks (zoals 1 of 11 of 52) en/of daarna pas 1 tekenreeks (zoals A , D , F)

Je code werkt opzich lekker, alleen met verschil dat hij de (alleen)cijfers bladen gaat groeperen op volgorder (dus 11 na 1 etc) en daarna apart de cijfer+teken bladen gaat groeperen (1A, 2D, 12A en etc.).

Krijg nu iets als deze volgorde:
1,2,5,8,12,14,1D,3A,4D,12B etc.

Ben zelf even aan het kijken om de namen maar te splitsen in een cijfer-reeks en een teken-reeks.
 
Laatst bewerkt door een moderator:
Hola gast0667 !

Eén keer onvoldoende testen, tot daar toe, maar geen twee keer. Ik had dat nu wel allemaal getest en bij mij gaat het goed.

Ik vermoedde al iets en ik heb dat dan ook nog eens getest en wat blijkt? De werking is (lees: was) afhankelijk van de instelling van het Decimal Symbol in de Control Panel van Windows. Ik werk met een punt als decimaal teken maar als ik die instelling wijzig naar een komma in het Control Panel, dan heb ik inderdaad hetzelfde verschijnsel als,jij.

Het bijgevoegd bestand zou onafhankelijk van de instelling van het decimaal teken moeten werken.

Grtz,
MDN111.
 

Bijlagen

Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan