[ExcelVba] Problème feuille inexistante

François_59 -  
 Utilisateur anonyme -
Bonjour,

J'ai créer un classeur excel avec une 100n de feuilles. Afin de simplifier ma recherche, j'ai créer une macro en vba :

Sub cherche()
Dim maFeuil As String
maFeuil = InputBox(Prompt:="Taper le nom de la feuille recherchée. ")
Sheets(maFeuil).Select
Range("a1").Select
If Sheet(maFeuil).select = false then
Goto 1
End if
GestErreur:
MsgBox "Cette feuille n'existe pas !"
End Sub
A voir également:

2 réponses

François_59
 
Bonjour,

Voila, j'ai refait mon programme pour la recherche de mes feuilles, et je me retrouve fasse à quelques soucis :


Sub Rechercheclient()
Dim mafeuil As String
Dim Feuille As Worksheet
Dim flag As Boolean

flag = False
mafeuil = InputBox("Quelle fiche client voulez vous ouvrir ? ","", "Nom du client")

For Each Feuille In Worksheets
If (Feuille.Name = mafeuil) Then
Sheets(mafeuil).Select
Range("a1").Select
flag = True
End If
Next

If Not (flag) Then
Worksheets.Add.Name = mafeuil
Range("a1").Select
Range("a1") = "Nom du client :"
Range("B1") = mafeuil
Range("A2") = "Code client :"
Range("a4") = "Date facture"
Range("b4") = "N° facture"
Range("c4") = "Montant facture"
Range("b50") = "Total"

End If
End Sub

Voici mes problèmes:

1->Quand il me demande le nom dem on client pour la première fois et que je décide d'annuler, il me met une erreur d'exécution (1004) au niveau de la ligne worksheets.add.name=mafeuil.
Comment peut-on corriger cette erreur svp ?

2->Pour la création d'une nouvelle feuille, Je voudrais mettre en cellule "b2" le code du client (Range("b2")=Inputbox(Quel est le code client ?")), Mais j'ai une erreur.
Je peux faire comment ?

3->Encore dans la création de feuille, je voudrais insérer une formule somme en cellule c50 (Range("c50")=Sum(c5:c49)), L'erreur et que cette partie est erronée, peux on me la corriger svp ?

4->Comment créer une cadre avec tout les traits (horizontaux et verticaux) entre la cellule a4 à c49.

Je sais que j'en demande beaucoup, mais je suis novice en vba excel.
En tout cas, je vous remercie par avance pour la réponse à mes problèmes.

Merci,

@++
0
Utilisateur anonyme
 
Bonjour,

Voici une suggestion :

Sub Rechercheclient()
    
    Dim mafeuil As String
    Dim Feuille As Worksheet
    Dim flag As Boolean
    
    flag = False
    mafeuil = InputBox("Quelle fiche client voulez vous ouvrir ? ", "", "Nom du client")
    
    If (mafeuil <> "") Then
        For Each Feuille In Worksheets
            If (Feuille.Name = mafeuil) Then
                Sheets(mafeuil).Select
                Range("a1").Select
                flag = True
            End If
        Next
        
        If Not (flag) Then
            Worksheets.Add.Name = mafeuil
            Range("b2").Value = InputBox("Quel est le code client ?")
            Range("a1").Select
            Range("a1").Value = "Nom du client :"
            Range("B1").Value = mafeuil
            Range("A2").Value = "Code client :"
            Range("a4").Value = "Date facture"
            Range("b4").Value = "N° facture"
            Range("c4").Value = "Montant facture"
            Range("b50").Value = "Total"
            Range("c50").Value = "=Sum(c5:c49)"
            MiseEnForme
        End If
    End If

End Sub
'

Function MiseEnForme()

    Range("A4:C49").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeLeft).Weight = xlThin
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeTop).Weight = xlThin
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).Weight = xlThin
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlEdgeRight).Weight = xlThin
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideVertical).Weight = xlThin
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).Weight = xlThin
    End With
    Range("A1").Select

End Function


Lupin
0