Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 erreur de code

  • Initiateur de la discussion Initiateur de la discussion AlphaOne
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AlphaOne

XLDnaute Junior
Bjr à tous,
en voulant insérer un msgbox, j'ai maintenant une erreur dans le code suivant, mais je ne sais pas ou ?

VB:
Sub Effacer_Données()
Dim ws As Worksheet
For Each ws In Worksheets
If MsgBox("Voulez-vous effacer toutes les données" & vbCr & " ", vbYesNo + vbExclamation, "Effacer") = vbNo Then Exit Sub

If Not (ws.Name = "Tableau" Or ws.Name = "Perf et Contre") Then
ws.Range("A200:I200").AutoFill Destination:=ws.Range("A4:I200"), Type:=xlFillDefault
Merci pour votre aide
 
Bonjour AlphaOne,

Lorsqu'Excel vous met une erreur la ligne qui est fautive devient jaune 🤔
Je ne comprends pas quel est votre souci pour la trouver...

Mais dans le code donné, il manque un "End If" 😜
 
Dernière édition:
le voici:
VB:
Sub Effacer_Données()
Dim ws As Worksheet
For Each ws In Worksheets
If MsgBox("Voulez-vous effacer toutes les données" & vbCr & " ", vbYesNo + vbExclamation, "Effacer") = vbNo Then Exit Sub

If Not (ws.Name = "Tableau" Or ws.Name = "Perf et Contre") Then
ws.Range("A200:I200").AutoFill Destination:=ws.Range("A4:I200"), Type:=xlFillDefault
End If
Next ws
Range("F49").Select
End Sub
 
ton msgbox est DANS la boucle for each ws
==> tu demandes à chaque feuille
MAIS si tu réponds NON ==> tu QUITTES la macro.. donc.. fin de la boucle...

corrige avec ceci
VB:
Sub Effacer_Données()
Dim ws As Worksheet
For Each ws In Worksheets
    If Not (ws.Name = "Tableau" Or ws.Name = "Perf et Contre") Then
        If MsgBox("Voulez-vous effacer toutes les données" & vbCr & " ", vbYesNo + vbExclamation, "Effacer") = vbYes Then
            ws.Range("A200:I200").AutoFill Destination:=ws.Range("A4:I200"), Type:=xlFillDefault
        End If
    End If
Next ws
Range("F49").Select
End Sub

Je répète.. tirer une formule n'est pas effacer ...
 
Dernière édition:
VB:
Sub Effacer_Données()
Dim ws As Worksheet
For Each ws In Worksheets
    If Not (ws.Name = "Tableau" Or ws.Name = "Perf et Contre") Then
        If MsgBox("Voulez-vous effacer toutes les données" & vbCr & " de la feuille " &ws.name, vbYesNo + vbExclamation, "Effacer") = vbYes Then
            ws.Range("A200:I200").AutoFill Destination:=ws.Range("A4:I200"), Type:=xlFillDefault
        End If
    End If
Next ws
Range("F49").Select
End Sub

si tu as l'impression que le msgbox bloque le code parce que tu as répondu non, remplace avec cette macro.. qui modifie juste le texte du msgbox.. tu devrais comprendre

sinon, pour info.. pour débugger une macro et/ou suivre son execution pas à pas: touche F8
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
232
Réponses
9
Affichages
201
Réponses
0
Affichages
566
Réponses
2
Affichages
153
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…