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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
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 ?
 

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo