Vider une page d'enregistrement

czac

XLDnaute Occasionnel
Bonjour,

Ci-dessous un code pour vider une page d'enregistrement de mon formulaire. Malheureusement cela ne fonctionne pas. il me dit:
"Erreur de compilation: Nombre d'arguments incorrect ou affectation de propriété incorrecte."

Pouvez-vous m'aider?

cordialement

vider la page d'enregistrement
Sheets("enregistrement").Select
Range("AY8 , L4, AB4 , H6 , I9 , V6 , AA9:AA10, O14: P17 , AI14: AJ25 , C27 , N31 ").Select ""
Selection.ClearContents
Range("A1").Select
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Ça devrait aller mieux ainsi, non?
VB:
Sub a()
Sheets("enregistrement").Range("AY8,L4,AB4,H6,I9,V6,AA9:AA10,O14:P17,AI14:AJ25,C27,N31").ClearContents
End Sub
 

czac

XLDnaute Occasionnel
Merci pour votre retour. Par contre le code ne fonctionne pas. Je vous joint le fichier ca sera peut-être plus simple. c'est un fichier que j'ai récupérer et que j'essai de transformer. je pense que j'aurais un peu besoin d'aide sur ce fichier :)
Si vous allez dans l'onglet "Enregistrement" et cliquez pour enregistrer l'analyse.
 

Fichiers joints

Staple1600

XLDnaute Barbatruc
Re

@czac
Tu penses qu'on poste des codes VBA sans s'assurer au préalable qu'ils fonctionnent correctement...?
Le code que je t'ai proposé dans le message#2 fonctionne parfaitement.
Je le sais. Je l'ai testé.

NB: Le code fait ce que tu lui a demandé de faire:
Effacer le contenu des cellules* de la feuille nommée enregistrement du classeur actif.
(* cellules dont les adresses sont :
AY8,L4,AB4,H6,I9,V6,AA9:AA10,O14:P17,AI14:AJ25,C27,N31
)
 

Staple1600

XLDnaute Barbatruc
Re


C'est normal. Et VBA te dit ce qui ne va pas.
Il manque un End Sub

Tu as copié ma macro à l'intérieur d'une autre macro!

Soit tu copies ma macro à l'extérieur d'une macro existante

Soit tu remplaces tes lignes de originales par la mienne.
Donc remplacer
VB:
'vider la page d'enregistrement
Sheets("enregistrement").Select
Range("AY8 , L4, AB4 , H6 , I9 , V6 , AA9:AA10, O14: P17 , AI14: AJ25 , C27 , N31 ").Select ""
Selection.ClearContents
Range("A1").Select
par
VB:
'vider la page d'enregistrement
Sheets("enregistrement").Range("AY8,L4,AB4,H6,I9,V6,AA9:AA10,O14:P17,AI14:AJ25,C27,N31").ClearContents
 

czac

XLDnaute Occasionnel
Bonjour,

merci pour ce retour. J'ai bien remplacé et cela fonctionne je pense. Maintenant j'ai une autre fenêtre qui s'ouvre. Ci-joint l'imprim écran.
 

Fichiers joints

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@czac
Si ce MsgBox s'affiche c'est parce que cela a été prévu par l'auteur du code VBA.
Donc recherche dans le code VBA, la phrase affichée.
Et ensuite essaies de comprendre quelles conditions déclenche l'affichage du MsgBox.

PS: Tout ceci laisse supposer que tu n'es pas l'auteur du code VBA.
Si c'est le cas, rapproche toi de l'auteur pour qu'il t'aide.
 

czac

XLDnaute Occasionnel
Non je suis pas l'auteur..... je l'ai récupéré. je ne connais pas la personne qui a fait ce fichier malheureusement.Et j'aimerais l'adapter et je suis assez novice....... malheureusement. J'ai essayer de comprendre.
J'ai rajouter dans l'onglet enregistrement 2 conditions supplémentaires en AY8 et AY6.
 

Staple1600

XLDnaute Barbatruc
Re

Tu as trouvé la phrase qui s'affiche dans le MsgBox?
Pour aller dans VBA, faire ALT+F11
Ensuite faire CTRL+F
et là tu saisis un des mots qui apparaît dans le MsgBox
Cela t'enverra dans la partie du code qui gère l'affichage de ce MsgBox.
 

czac

XLDnaute Occasionnel
Bonjour,

voilà le code que j'ai trouver. Que dois-je faire?

Sub verif()
Sheets("enregistrement").Select
manquant = ""
For lig = 6 To 13
If Cells(lig, 57).Value = 0 Then
manquant = manquant & ", " & Cells(lig, 56).Value
End If
Next
nn = "Merci de saisir les informations suivantes : " & manquant & ". Ce résultat d'analyse ne peut pas être enregistré."
MsgBox (nn)
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@czac
Je t'ai ajouté des commentaires dans ton code.
Tu comprends mieux à quoi sert la macro?
PS: Si elle te gêne et n'est pas nécessaire au fonctionnement de ton classeur
Tu peux la supprimer, non ?
VB:
Sub verif()
'Déclarations des variables
Dim lig As Long, manquant As String
With Sheets("enregistrement")
    manquant = ""
    'à partir de la ligne 6 jusqu'à la ligne 13
    For lig = 6 To 13
    'Si dans la colonne B, les cellules sont égales à zéro
    If .Cells(lig, "BE").Value = 0 Then
    'alors répertorier l'adresse de ces cellules dans la variable manquant
    manquant = manquant & ", " & .Cells(lig, "BD").Address(0, 0)
    End If
    Next
    End With
    'Afficher un message indiquant la valeur de manquant
MsgBox "Merci de saisir les informations suivantes : " & manquant & Chr(13) & Chr(13) & "Ce résultat d'analyse ne peut pas être enregistré."
End Sub
Ci-dessous une variante plus courte de ta macro.
VB:
Sub Verif_II()
With Sheets("enregistrement")
    If Application.CountIf(.Range("BE6:BE13"), 0) > 0 Then
    MsgBox "Merci de saisir toutes les informations dans les cellules: " _
        & Chr(13) & vbTab & "BD6 à BD13" & Chr(13) & Chr(13) & _
        "Ce résultat d'analyse ne peut pas être enregistré.", vbCritical, "Erreur"
    End If
End With
End Sub
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas