[ExcelVba] Problème feuille inexistante
François_59
-
Utilisateur anonyme -
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
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
2 réponses
-
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,
@++ -
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