XL 2016 besoin d'aide sur comment créer un bouton pour effacer des données dans des cellules sur plusieurs feuilles

chef-gael

XLDnaute Nouveau
voila mon soucis je cherche depuis plusieurs jours comment faire mais vu que je suis novice c'est pas gagner....
sur une feuille dans excel je voudrais créer un bouton de remise a zéro sur d'autres feuilles excel mais que certaines cellule qui ne sont pas toute identique d'une feuille a l'autre ,j'ai tenté de créer un code vba mais je préfère faire une mayonnaise a choisir.
voici le code que j'ai essayer de rentré dans visual basic.

Private Sub ToggleButton1_Click()
Dim Rep

Rep = MsgBox("Vous allez supprimer toutes les données !" & Chr(10) & "Poursuivre ?", vbYesNo)
If Rep = vbNo Then
Sub Reset()
With fourniseur.Range("D6:O12")("D16:O22")("D26:O32")("D36:O42")("D46:O48").ClearContents
End With
With MAD1.Range("D6:BK12")("D16:BK22")("D26:BK32")("D36:BK42")("D46:BK48").ClearContents
End With
With BALANCE.Range("D5:L56")("D59:L62")("D66:L72")("D74:L78")("D81:L87").ClearContents
End With
With FACTURES.Range("E22:F64")("E88:F130")("E154:F196")("E219:F261")("E284:F326")("E349:F391")("E414:F456")("E479:F521")("E544:F586")("E609:F651").ClearContents
End With
With BOF.Range("G7:G68").ClearContents
End With
With EPICERIE.Range("G7:G421").ClearContents
End With
With VOLAILLE_POISSON.Range("E7:E70").ClearContents
End With
With SURGELE.Range("E7:E71").ClearContents
End With
With LEGUMES.Range("E7:E71").ClearContents
End With
With JETABLE_ET_LESSIVIEL.Range("E7:E58").ClearContents
End With
With boisson.Range("E7:E58").ClearContents
End With
End Sub

je si nul ou il y a des trucs cohérent ?
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, chef-gael

chef-gael
Tu as souci qui prime sur les autres ;)
Voir le point 3) de la charte du forum (section pour tous)

Sinon pour ta question
Il y a des erreurs de syntaxe dans ton code

• Une suggestion pour finir (pour simplifier les choses)
Nommer les plages de cellules pour facilement les identifier et donc les effacer
 

Roblochon

XLDnaute Accro
Bonjour,

Je ne sais si vous faites des mayonnaises sans oeufs, mais en tous cas vous faites des fils sans l'élément principal qui fait prendre la sauce: BONJOUR!

Si 'fourniseur' est le codeName de la feuille:fournisseur.Range("D6:O12,D16:O22,D26:O32,D36:O42,D46:O48").ClearContents devrait le faire.

Si 'fournisseur' est juste le Name de la feuille alors la forme sera Sheets("fournisseur").Range("D6:O12,D16:O22,D26:O32,D36:O42,D46:O48").ClearContents

Bonne journée

[Edit] hello l'ami @Staple1600
 

chef-gael

XLDnaute Nouveau
fourniseur c'est bien le nom de la feuille effectivement
comme pour BOF,BOISSON etc.... donc je dois rajouter sur chaque ligne Sheets("fourniseur") BOF,etc
merci beaucoup Roblochon !!! je vais essayer cela
 

chef-gael

XLDnaute Nouveau
Bonjour le fil, chef-gael

chef-gael
Tu as souci qui prime sur les autres ;)
Voir le point 3) de la charte du forum (section pour tous)

Sinon pour ta question
Il y a des erreurs de syntaxe dans ton code

• Une suggestion pour finir (pour simplifier les choses)
Nommer les plages de cellules pour facilement les identifier et donc les effacer
oui effectivement tu a entièrement raison bonjour avec mes plus plate excuse je manque a mon devoir :/
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour Roblochon ;) [PJ] (Tu as trouvé le fil?)[/PJ]

Un petit exemple qui suit ma suggestion du message#2
VB:
Sub Effacer()
Sheets(1).Range("A1:B10,C3:D5").Name = "zone1": [zone1] = ""
Sheets(2).Range("F3:F8,C4:D10,A1").Name = "zone2": [zone2] = ""
'etc...
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Qu'est-ce que tu poses problème dans ma suggestion?
Est-ce plus clair avec les commentaires ci-dessous ?
VB:
Sub Effacer_II()
Sheets("fournisseur").Range("D6:O12,D16:O22,D26:O32,D36:O42,D46:O48").Name = "zone1": [zone1] = ""
'tu reproduis la même syntaxe pour les autres plages de cellules en faisnt les changements idoines
'Sheets(nomfeuille).Range(adresse des cellules).Name = "zoneX": [zoneX] = ""
'etc...
End Sub
 

chef-gael

XLDnaute Nouveau
voila j'ai retaper cela pense tu que tout es bon ?

Sub ToggleButton1_Click()

Sub Effacer_II()
Sheets("fournisseur").Range("D6:O12,D16:O22,D26:O32,D36:O42,D46:O48").Name = "zone1": [zone1] = ""
Sheets("MAD1").Range("D6:BK12,D16:BK22,D26:BK32,D36:BK42,D46:BK48").Name = "zone2": [zone2] = ""
Sheets("BALANCE").Range("D5:L56,D59:L62,D66:L72,D74:L78,D81:L87").Name = "zone3": [zone3] = ""
Sheets("FACTURES").Range("E22:F64,E88:F130,E154:F196,E219:F261,E284:F326,E349:F391,E414:F456,E479:F521,E544:F586,E609:F651").Name = "zone4": [zone4] = ""
Sheets("BOF").Range("G7:G68").Name = "zone5": [zone5] = ""
Sheets("EPICERIE").Range("G7:G421").Name = "zone6": [zone6] = ""
Sheets("VOLAILLE_ET_POISSON").Range("E7:E70").Name = "zone7": [zone7] = ""
Sheets("SURGELE").Range("E7:E71").Name = "zone8": [zone8] = ""
Sheets("LEGUMES").Range("E7:E71").Name = "zone9": [zone9] = ""
Sheets("JETABLE_ET_LESSIVIEL").Range("E7:E58").Name = "zone10": [zone10] = ""
Sheets("BOISSON").Range("E7:E58").Name = "zone11": [zone11] = ""
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Essaies déjà sur un exemple simple (sur une feuille vide d'un classeur vide)
VB:
Sub test()
Sheets(1).Cells.Clear
Sheets(1).Range("A1:F40") = "=ADDRESS(ROW(),COLUMN(),4)"
Sheets(1).Range("A3:C10").Name = "zone1"
Sheets(1).Range("A28:D31").Name = "zone2"
Sheets(1).Range("F20:F25").Name = "zone3"
Union([zone1], [zone2], [zone3]).Interior.Color = vbGreen
MsgBox "Effacement du contenu des cellules des plages nommées?"
[zone1] = ""
[zone2] = ""
[zone3] = ""
End Sub
L'effacement se fait bien sur ton PC, non ?
 

Staple1600

XLDnaute Barbatruc
Re

Donc normalement, si tu nommes bien tes zones sur ton classeur, l'effacement doit se faire comme dans la macro exemple.
(Puisque c'est la même logique et la même syntaxe)
 

chef-gael

XLDnaute Nouveau
quand je vais sur le bouton afin d'enregistrer la macro
je click dessu
"macro"
,Feuil1.Effacer_II
,excuter

(réponse)

l'indice n'appartient pas a la selection
 

Staple1600

XLDnaute Barbatruc
Re

Il ne faut pas enregistrer la macro
Mais affecter la macro à ton bouton
Tu sélectionnes ton bouton - clic-droit => Affecter une macro
 

chef-gael

XLDnaute Nouveau
je te fais voir le dosier dans la case parametre juste endessou du gros logo c'est la que je voulais mettre le bouton qui aurait effacer toutes les données que j'essai de rentrer comme tu as pu le voir
 

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