Mettre le compteur à zéro

Je veux placer un bouton à côté de sorte à ce que si j’appuie sur le bouton que les renseignements que j’ai remplis dans le tableau reviennent à zéro. Voici mon fichier.:point_down::point_down::point_down:
MON LOGICIEL EXCEL 2025.xlsx (380,7 Ko)

Bonjour,

Pouvez-vous nous dire pour quelle feuille ?

Will

Pour la feuille CLASSEMENT1
MON LOGICIEL EXCEL 2025.xlsx (380,7 Ko)

1 « J'aime »

Rebonjour,
De I11 à S62 ?

Oui oui c’est ça même.

1 « J'aime »

Bonsoir,
voici un exemple :

MON LOGICIEL EXCEL 2025 (1).xlsm (387,9 Ko)

Sub effacer()
Range("I11:S62").ClearContents
End Sub

une petite mise à jour vient d’être fait au lieu de S22 c’était S62
Will

Bonsoir @Jacquinot_WILL-FREAD,

Sub effacer()
  MsgBox "22, v'là les flics !" 'dixit Al Capone quand il voit
  'débarquer Eliot Ness et sa bande des incorruptibles.
End Sub

sérieusement, on peut aussi mettre : [I11:S62].ClearContents
ou même (au choix) : [I11:S62] = Empty

1 « J'aime »

Voici le message qui apparaît

Bonsoir @Promarco,

j’ai téléchargé ton fichier depuis le post précédent de @Jacquinot_WILL-FREAD,
puis j’ai modifié uniquement la sub de Module1 (aucun autre changement) :

Sub effacer()
  If ActiveSheet.Name = "CLASSEMENT1" Then [I11:S62].ClearContents
End Sub

depuis la feuille « CLASSEMENT1 », fais Alt F8 ➯ fenêtre « Macro » ;
exécute la sub effacer() ➯ c’est OK. :blush:

MON LOGICIEL EXCEL 2025 (1).xlsm (394,1 Ko)

edit : je n’avais pas vu ton bouton vert clair « Effacer » ; en cliquant dessus,
c’est OK car le bouton est correctement affecté à la sub effacer().


en principe, la syntaxe du nom « Béremwidougou » est correcte avec une version d’Excel
dont le vérificateur de syntaxe est africain.
:stuck_out_tongue_winking_eye: non, je blague ; mais si tu as de nouveau
ton message d’erreur, indique dans quelles circonstances ça se produit ; je veux dire :
c’est en faisant quoi au juste ?

image

c’est drôle la sonorité « ou ou », comme pour « kangourou ». :joy:
mais les kangourous sont en Australie, pas en Afrique.


petit cadeau : une jolie chanson de Donna Summer

1 « J'aime »

:joy::joy::joy:tu es marrant hein​:joy::joy::joy:ok j’ai bien retenu. J’ai fermé le travail pour aller chercher ma sœur à l’aéroport. Demain je te reviens. Passe une excellente soirée

[…] , c’est une écriture ancienne et dangeureuse. Je préfère l’écrire complèt comme @Jacquinot_WILL-FREAD Range(« I11:S62 »), ces […] sont une sorte de « evaluate » et ce n’est pas sûr que VBA donnera la même interprétation que vous au moment où vous l’écrivez (la plage elle-même ou le contenu ou …)

oui, je sais bien : dans ce post, je vous avais écrit :

pour moi, utiliser les crochets est juste l’utilisation d’une notation abrégée, qui est vraiment
très pratique ; je continuerai ainsi car j’en ai l’habitude, et que toutes les fois où j’ai utilisé
cette notation, je n’ai jamais eu de problème, quelle que soit la version d’Excel utilisée :
2003 ; 2007 ; 2010 ; 2019 ; 2021 (ma version actuelle). :blush:

ainsi, jusqu’à maintenant, avec cette notation que vous qualifiez de dangereuse, je n’ai
jamais eu de cas où cette notation avec crochets me retourne un résultat autre que
celui attendu (j’croise les doigts pour que ça continue). :blush:

quand VBA rencontre [I11:S62].ClearContents, il fait appel à la fonction Evaluate(),
qui ne fait que la traduire en Range("I11:S62").ClearContents, ce qui revient donc
au même ; la seule différence concerne la vitesse :

dans une très grande boucle de par exemple 50 000 itérations, ça pourrait être un peu
plus rapide de ne pas utiliser la notation abrégée, car dans le cas où le code VBA est
interprété et non pas compilé, ça évite 50 000 appels à la fonction Evaluate() ; de plus,
si on a un PC puissant (avec un processeur Intel i7 ou un AMD Ryzen 7, et une RAM
d’au moins 16 Go)
, c’est très rapide, même s’il y a 50 000 itérations.

j’ai une préférence pour la notation abrégée car comme son nom l’indique, c’est plus court
(à écrire et à lire) ; pour moi, ça améliore la lisibilité d’un code VBA ; c’est évidemment un
choix personnel ; si vous préférez éviter cette notation, vous êtes bien sûr libre de ne pas
l’utiliser ; merci quand même pour votre indication. :slightly_smiling_face:

Exactement, on pouvait, :grinning:
je donne la plupart du temps qu’une méthode, même si on peut en avoir plusieurs.

Le problème des […] c’est sa limite, c’est plutôt Absolue contrairement à Range.

perso, c’est vraiment très rare quand j’ai besoin d’utiliser des références relatives
du style [R-1C+2] : j’utilise la plupart du temps des références absolues ➯ ça ne
me gêne pas du tout d’utiliser des crochets […].

pour des macros avec des références relatives, il faut bien sûr prendre toutes les
précautions
qui s’imposent, afin de ne pas écrire ou lire à un mauvais endroit !

sinon, le fonctionnement de la macro sera plus qu’aléatoire, et ça pourrait même faire
planter la sub : par exemple si on écrit trop en haut, et que le n° de ligne relative est
inférieur à 1 (la ligne 0 ou la ligne -5 n’existe pas !).

idem si on écrit trop à gauche : il n’y a pas de colonne à gauche de la colonne A !

bien sûr, à partir d’une référence absolue, on peut faire une référence relative
en utilisant un décalage via .Offset() ; mais là aussi, il faut être prudent.

les références relatives via .Offset(), je les utilise très souvent … du moins
quand l’occasion s’en présente (notamment pour écrire ou lire plusieurs infos
contigües d’une même ligne)
.

Alors c’est parfait. j’ai 3 méthodes en réalité :

  1. Cells(ligne, colonne),
  2. [ ]
  3. Range( )

Mais je préfère Range

oui, moi aussi j’utilise ces 3 méthodes ; pour beaucoup de chose en VBA, il y a plusieurs
façons d’écrire une instruction ; en général, je choisis la formulation la plus courte. :stuck_out_tongue_winking_eye:

par exemple, c’est tout à fait inutile de mettre Cells(5, 3) ; comme on connaît à la fois
la ligne et la colonne, c’est à la fois plus court et plus lisible de mettre simplement [C5].

  • si la ligne est variable : j’utilise Cells(lig, 3)
  • si la colonne est variable, j’utilise Cells(5, col)
  • si la ligne ET la colonne sont variables : Cells(lig, col)

j’utilise Range() pour par exemple : Range("C" & lig)

1 « J'aime »

bon, moi, je déconseille l’utilisation des crochets parce que je ne me rappèles plus ces circonstances, mais Excel interprétait ces crochets pas comme moi, je les avais en tête!!!
Mais … la plus part des causes des problèmes se situent entre l’écran et la chaise. :partying_face:

Je ne le sais pas, mais j’ai vu ceci aussi, on a assigné une plage à un variable, disons
set Plage= .range(« B10:Z100 ») et puis on utilise Plage(3,2) pour la cellule C12, donc une adresse relative dans la plage « Plage », cela a l’air de fonctionner.

1 « J'aime »

j’ai compris cette expression. :stuck_out_tongue_winking_eye: je laisserai tomber l’utilisation des crochets quand
je rencontrerai des problèmes à cause d’eux (mais j’espère que ça n’arrivera pas),
et pour l’instant, de mon côté, tout est ok (même en utilisant des crochets) ! :blush::+1:

Set Plage = .Range("B10:Z100") ; bien sûr, le .Range() est par rapport à une
des feuilles du classeur ; pour Plage(3, 2) : la 3ème ligne à partir de la ligne 10,
c’est bien la ligne 12 de C12 ; la 2ème colonne à partir de la colonne B, c’est bien
le C de C12 ➯ si c’est bien C12 qu’on voulait référencer, c’est ok. :slightly_smiling_face:

quand on compte, ça doit inclure la ligne de départ ou la colonne de départ.

y’a un dicton qui dit : « pas de nouvelles, bonnes nouvelles » ; bon, alors c’est ok :
ça veut dire que tu as trouvé ta sœur à l’aéroport, que tu l’as ramenée chez toi,
et que vous papotez longuement ensemble pour vous raconter vos 2 vies ! :stuck_out_tongue_winking_eye::joy:

P.S. si ta sœur est aussi jolie que Donna Summer, je veux bien que tu me passe
son numéro de téléphone ! :smiling_face_with_three_hearts::heart_eyes::star_struck: à fortiori si elle est encore plus jolie ! :stuck_out_tongue_winking_eye:

image

1 « J'aime »

@Promarco

Lis d’abord mon post précédent. :slightly_smiling_face:


quand tu en auras le temps, lis aussi ce post de @CHRIS1945 ; c’est sur
ton autre sujet « Conditionner une cellule au mot saisit dans la cellule ».

après avoir vu le fichier corrigé et la solution de Chris, n’oublie pas de
lui répondre, mais pas ici, dans l’autre conversationsous le post
où tu as téléchargé le fichier corrigé de Chris.


tu as eu une réponse de @taz067 sur ton sujet « Fichiers avec liaison »,
et il t’a répondu aussi sur ton autre sujet « Protection de cellules ».

n’oublie pas de répondre aussi à taz067 (sur les 2 sujets).


comme tu as 4 sujets en même temps, je crois que toi-même tu t’y perds un peu,
surtout qu’ils sont tous pour ton gros fichier d’élèves avec plusieurs feuilles
. :stuck_out_tongue_winking_eye:


à tout hasard, si ta sœur est fan d’Excel, demande lui de t’aider ! :joy: (si elle
s’est suffisamment reposée du décalage horaire de son voyage en avion)

si ta sœur est fan aussi de VBA, c’est encore mieux ! :blush: elle pourra alors t’aider
à coder en VBA,
et elle sera ton assistante, comme Ada Lovelace a été celle de
Lord Byron. (c’est pour ça qu’un langage informatique s’appelle « Ada »)

image