Effacer le contenue de cellules par rapport au coordonnées d'un bouton

Bonjour;

Je suis un vrai novice dans ce domaine.

J'aimerais avoir une commande sur un bouton qui effacerait les informations de certaines cellules qui se trouvent à certaines distances/coordonnées de celui-ci .

De plus, ce "bloc" où se trouvent le bouton et certaines cellules à nettoyer, j'aimerais pouvoir le copier collé dans mon document et donc que le bouton de nettoyage s'adapte par rapport à sa position.

Voici une image qui illustre ce que j'aimerais faire, ( les cases rouges sont les cellules à nettoyer) .

Connaissez-vous donc une macro qui me permettrait de faire cela ? Peut-être aussi qu'une simple fonction Excel est possible ?

Merci de votre réponse

Cordialement Pickine

12bouttonclean.xlsx (15.66 Ko)
capture d ecran 2021 07 27 121217

Salut Pickine,

Possible à faire, certainement, mais pas avec des informations pareilles

à certaines distances/coordonnées de celui-ci

On peut traduire des idées clairement énoncées en VBA ou formules, voire Power Query pour les plus balaises, mais il faudra que tu y mettes un peu du tien pour mieux expliquer ton projet.


A+

Salut Curulis57,

Merci pour ton message, et pardon si je n'ai pas été assez claire je vais tenter de l'être plus :

Mon projet consiste à automatiser des résultats de dés en fonction d'autres paramètres ( pour un jeu de rôles papier) .

Ces résultats de dés sont rentrés dans un formulaire ( ex : dans les cases rouges du bloc du premier poste) . Cependant, ce formulaire doit être duplicable car chaque formulaire est une entité différente .

Une fois les résultats rentrées, j'aimerais cliqué sur un bouton qui permettrait d'effacer la contenue où l'on rentre les valeurs du dé . ( car j'ai des fonctions qui s'active quand certaines cellules son vide)

Après quelques recherches, une macro du genre :

Range("A1:E10").ClearContents ,pourrais faire l'affaire si je n'avais pas à dupliquer le formulaire, et je ne veux configurer qu'un seul bouton .

j'ai trouvé aussi comment avoir les coordonnées d'un bouton :

MsgBox CommandButton1.TopLeftCell.Address

Avec ces deux codes j'aimerais prendre les coordonner x,y via MsgBox CommandButton1.TopLeftCell.Address ( avec x et y ligne et colonne )

Pour que les coordonnées du bouton soient une référence et donc nettoyer les cellules qui sont à N ligne ou M colonne des coordonnée X, Y

De la sorte je pense que je pourrai dupliquer le formulaire sans avoir à reconfigurer un bouton à chaque fois.

capture d ecran 2021 07 28 113751

Danse ce fichier le bouton "Clear" marche pour le formulaire 1 ( il nettoie des cases remplies dans son formulaire), quand je le copie et crée le formulaire 2, le bouton "Clear" du formulaire 2 nettoie les cases du formulaire 1, j'aimerais qu'il nettoie les cases de son formulaire .

j'espère avoir été plus claire cette fois-ci, s'il y a d'autres zone d'ombre n'hésiter pas !

Cordialement, Pickine

Salut Pickine,

perso, je ne m'embarrasserais de boutons !
Utilise plutôt la première case de tes blocs "ATT" pour lancer la procédure d'effacement via un double-clic.
Cette cellule étant unique, la reconnaissance de son libellé serait facile.

Je regarde plus tard...


A+

Merci pour t'as réponse Curulis57,

C'est vrai que la nécessité d'un bouton mes venues à l'esprit en premier car je trouvais sa plus sympa et rapide ( un clic ) car je risque d'appuyer plusieurs fois sur le même formulaire . Je ne connais pas la technique de "l'effacement via un double-clic" par contre

Pickine

Salut Pickine,

- peux-tu me décrire avec précision les cellules à effacer ?
- veux-tu ou est-ce utile d'effacer ces cellules dans tous les blocs lors de la MÊME commande OU ne faut-il vraiment n'effacer qu'un bloc à la fois ?


A+

Bonjours Curulis57,

D'après la photo ci-jointe ou le fichier-ci joint les cellules à nettoyer sont : C7 à C20, I7 à 20 ,J20,J18,J16,J14,J12,J10,J8,B8,B10,B12,B14,B16,B18,B20

Pour le second point, il faut n'effacer qu'un bloc à la fois

Cordialement, Pickine

capture d ecran 2021 07 28 165953

C'est parti... en soirée !


A+

Salut Pickine,

ton fichier de retour;
- je postule que ton tableau de jeu en [B5] sera TOUJOURS présent !
- pour effacer, un clic DROIT sur la cellule "ATT" d'un tableau quelconque efface les cellules demandées

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'
Cancel = True
Application.ScreenUpdating = False
'
If Target.Count = 1 And Target = "ATT" And Target.Offset(0, 8) = "DEF" And Target.Offset(14, 0) = "ACC" Then
    Union(Target.Offset(2, 1).Resize(14, 1), Target.Offset(2, 7).Resize(14, 1)).Value = ""
    For x = 3 To 15 Step 2
        Union(Target.Offset(x, 0), Target.Offset(x, 8)).Value = ""
    Next
End If
'
Application.ScreenUpdating = True
'
End Sub

À ce propos, comment fais-tu pour que les valeurs du tableau en ligne 3 se modifient ainsi ??
- pour créer un tableau de jeu, il faut simplement DOUBLE-cliquer sur la cellule où tu désires voir apparaître ce nouveau tableau. La macro calcule si l'espace est suffisant et l'affiche ;
- en cas d'erreur ou pour toute autre raison, un DOUBLE-clic sur la cellule "ATT" d'un tableau efface celui-ci.
Ça ne fonctionnera évidemment pas pour [B5] !

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Cancel = True
Application.ScreenUpdating = False
'
If Target.Count = 1 Then
    If WorksheetFunction.CountA(Target.Resize(18, 9)) = 0 Then
        [B5].Resize(18, 9).Copy Destination:=Target.Resize(18, 9)
    Else
        If Target.Address <> "$B$5" Then Target.Resize(18, 9).Clear
    End If
End If
'
Application.ScreenUpdating = True
'
End Sub


A+

Curulis57 Un grand MERCI ! c'est super et pile ce que je cherchais ! merci beaucoup !

Cependant j'ai un dernier problème, quand je sélectionne des cellules et que je clic droit j'ai un message d'erreur comme ci-joint :

capture d ecran 2021 07 29 000339

Cela est-il normal ? je ne pourrais plus faire de sélection clic droit sur cette feuille ?

Concernant ? les valeurs du tableau en ligne 3 c'est simplement des lancé de dés aléatoire ( pour un Des a 6 faces ? =ENT(6* ALEA())+1) et le fichier relance les dés à chaque fois qu'une cellule change. Je ne sais pas comment il fait j'ai trouvé directement à le ficher dans cet état, je ne peux pas t'en dire plus je suis désolé...

Cordialement, Pickine

Salut Pickine,

voilà le fichier rectifié...
Bon amusement !

13pickine.xlsm (83.50 Ko)

A+

Un très grand merci a toi en tout cas ! Merci !

Rechercher des sujets similaires à "effacer contenue rapport coordonnees bouton"