Problème avec un sub dans une feuille (Excel)

Résolu/Fermé
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 3 sept. 2014 à 11:30
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 4 sept. 2014 à 11:41
Bonjour à tous,

Voilà je rencontre un petit problème avec un méthode que j'aimerai placer dans chacune de mes feuilles. Il s'agit d'une méthode qui efface une partie du contenu de la feuille. Cette méthode sera appellée par un Userform.

Voici le code tout simple placé dans le code de la feuille :

Sub Clear()
ActiveWorkbook.Sheets("Communes - Gemeinden").Unprotect MDP 'MDP est le mot de passe de la feuille
Sheets("Communes - Gemeinden").Range("A2:C" & Sheets("Communes - Gemeinden").Cells(1, 4).Value).ClearContents ' Sheets("Communes - Gemeinden").Cells(1, 4).Value) représente la dernière ligne pleine
End Sub


Ce que je trouve étrange c'est que c'est la première ligne qui me renvoie un erreur "1004 depuis Excel dans un MSGBOX et non depuis Editeur VBA (pas la possibilité de "FIN" ou de "DEBOGUER".

Est-ce que l'erreur vient du fait que le sub est placé dans une feuille ? Est-ce que qqun aurait une solution pour que ça fonctionne ?

Merci à tous !
A voir également:

5 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
3 sept. 2014 à 18:17
voilà pour effacer toutes les données d'une feuille:

ThisWorkbook.Sheets("Feuil1").Cells.Clear 'a adapter

1
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
4 sept. 2014 à 11:41
Le problème c'est que je ne veux pas tout effacer mais uniquement une zone précise.

Je vien d'essayer mon code sur une autre feuille avec une page fixe et ça à marcher. J'ai pu l'appeler depuis l'userforme comme je voulais :
Feuil4.Clear


Donc je pense qu'enfaite le problème devait venir d'une variable qui ne devait pas être déclarée.

Merci à tous quand meme !
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
3 sept. 2014 à 12:27
Bonjour

A tout hasard, peux-tu modifier le nom de ta macro, il me parait très proche du nom d'une fonction

cordialement
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 3/09/2014 à 12:29
Bonjour,

J'ai déjà essayé de changer en "Banane" et ça a rien changer :)

Mais merci ^^
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
3 sept. 2014 à 12:39
Et Unprotect (MDP )
0
bonjour,

oui c'est normale que ca beug car on ne peut pas mettre un sub dans une feuille.
ce qu'il faut mettre depends de l'action qui va declencher ta macro (par exemple quand tu modifie une cellule ou alors quand tu change la selection). tu peux voir les differentes possibilitées quand tu vas dans la feuille, en cliquant sur la barre en haut a gauche (par default il y a general) et tu selectionne worksheet puis tu clique sur la barre en haut a droite (par default c'est selectionchange) et la tu a toutes les possibilitées et quand tu clique sur une il va rajouté 2 nouvelles lignes et tu met ton code entre ces deux lignes
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
3 sept. 2014 à 17:23
Actuellement on peut mettre un sub dans une feuille et même m'appeler avec [ALT]+[F8]
0
désolé je savais pas
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54 > quent
3 sept. 2014 à 17:35
Pas besoin de t'excuser quent :)
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
3 sept. 2014 à 13:12
Du coup tu peux déplacer ta sub vers un module :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
3 sept. 2014 à 14:54
Bonjour,

Pour ce que tu veux faire, il ne faut pas ta macro dans la feuille.

Il suffit de mettre ceci dans le bouton de l'UserForm:

Option Explicit
Private Sub CommandButton1_Click()
nettoyer_feuil1
nettoyer_feuil2
End Sub
Private Sub nettoyer_feuil1()
ActiveWorkbook.Sheets("Feuil1").Unprotect "MDP" 'MDP est le mot de passe de la feuille
Sheets("Feuil1").Cells(1, 4).ClearContents
ActiveWorkbook.Sheets("Feuil1").Protect "MDP"
End Sub
Private Sub nettoyer_feuil2()
ActiveWorkbook.Sheets("Feuil2").Unprotect "MDP" 'MDP est le mot de passe de la feuille
Sheets("Feuil2").Cells(1, 4).ClearContents
ActiveWorkbook.Sheets("Feuil2").Protect "MDP"
End Sub

0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 3/09/2014 à 17:27
Bonjour é toi Le Pivert :)

J'y ai pensé mais enfaite je ne sais pas combient il va y avoir de Feuilles.

Le principe de ce classeur c'est qu'il y a des feuilles "Mère" comme modèle, et des feuille "Filles" qui sont des copies du modelle.

Et enfaite j'aimerai effacer le contenu de certaines de ses feuilles filles car à ce pseudo code.

Sub Effacer(Feuille As Worksheets)

Feuille.Clear

End Sub
0