XL 2019 enregister une macro qui insererait une croix dans 1 cellule

Patrick.75019

XLDnaute Occasionnel
Bonjour ,

Je viens solliciter votre aide pour enregister une macro qui insererait une croix dans 1 cellule a n'importe qu'elle endroit de la feuille active ou d'une autre feuille du classeur tout simplement en executant une macro

Je vous remercie déjà

Bonne journée
 

Fichiers joints

Eric C

XLDnaute Accro
Bonjour le forum
Bonjour Patrick

Essaies ceci en espérant avoir compris ta question :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If IsEmpty(ActiveCell.Value) Then
With ActiveCell
.Font.Bold = True
.Value = "           X"
End With
ElseIf ActiveCell.Value = "           X" Then
ActiveCell.Value = ""
End If
Cancel = True
End Sub
Bonne journée à toutes & à tous
@+ Eric c
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Patrick.75019, @Eric C ;),

J'avais fait de même :
VB:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
   Target.Value = IIf(Target = "X", "", "X"): Target.HorizontalAlignment = xlCenter
   Target.Font.Bold = True: Target.Font.Color = RGB(0, 100, 255)
   Cancel = True
End Sub
nota: évitez d'utiliser des images ou des formes. Cela accroit la taille de votre fichier et les images ne sont pas manipulables dans des formules.
L'utilisation d'un caractère simplifie le codage, allège vos fichiers et surtout on peut l'utiliser dans les formules. Exemple: Compter les cellules avec X :
NB.SI(plage,"X"), les utiliser comme condition : SI(cellule="X"; ... ; ... ), etc


edit: bonjour @job75 :) , @patricktoulon :)
 

Fichiers joints

Dernière édition:

Eric C

XLDnaute Accro
Re,
@ mapomme
Ah.... Mon incompétence au niveau des propriétés (et de beaucoup d'autres choses d'ailleurs :cool:).
@+
 

job75

XLDnaute Barbatruc
Bonjour Patrick.75019, Eric C, mapomme, le forum,

Voyez le fichier joint et cette macro qui duplique la Shape :
VB:
Sub Dupliquer()
'se lance par les touches Ctrl+D
Sheets("Feuil1").Shapes("Signe de multiplication 2").Copy
ActiveSheet.Paste
With Selection
    .Top = ActiveCell.Top + (ActiveCell.Height - .Height) / 2
    .Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
End With
ActiveCell.Activate 'ôte le focus de l'objet
End Sub
Bonne journée.
 

Fichiers joints

patricktoulon

XLDnaute Accro
bonjour a tous

j'ajoute mon grain ;)
je cite
je souhaiterais enregister une macro qui insererait une croix dans 1 cellule a n'importe qu'elle endroit de la feuille active oud'une autre feuille tout simplement en executant une macro
dans un module
Code:
Sub PutOrRemoveCrossInCell(ByVal cel As Range, Optional couleur As Long = 0)
    With cel
        .Value = IIf(.Value = "X", "", "X")
        .Font.Size = 12: .Font.Bold = True: .HorizontalAlignment = xlCenter: .Font.ColorIndex = couleur
    End With
End Sub

Sub test()' n'importe ou dans le classeur
    PutOrRemoveCrossInCell sheets("tartampion").Cells(3,"F"), 3
End Sub
dans le module d'un sheets au doubleclick
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
PutOrRemoveCrossInCell [F3], 3
End Sub
la couleur est optional
le sheets parent de la cellule n'est pas obligé d’être actif
et les couleurs c'est de 1 a 56 ( la palette du workbook)
;)
 

Eric C

XLDnaute Accro
Re le fil
Bonjour job75 (Comme dirait Olivier Mine, Toujours plus loin, toujours plus haut, toujours plus fort ou Ginette RENO dans sa chanson "un peu plus haut, un peu plus loin).
@ mapomme - Tant qu'il n'y a aucune forme de souffrance morale et ou physique ....
Edit : Bonjour Patrick - Toujours présent sur les meilleurs coups..
@+ Eric c
 

Patrick.75019

XLDnaute Occasionnel
Bonjour Patrick.75019, Eric C, mapomme, le forum,

Voyez le fichier joint et cette macro qui duplique la Shape :
VB:
Sub Dupliquer()
'se lance par les touches Ctrl+D
Sheets("Feuil1").Shapes("Signe de multiplication 2").Copy
ActiveSheet.Paste
With Selection
    .Top = ActiveCell.Top + (ActiveCell.Height - .Height) / 2
    .Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
End With
ActiveCell.Activate 'ôte le focus de l'objet
End Sub
Bonne journée.
 

Patrick.75019

XLDnaute Occasionnel
hello et merci a tous , mais j'ai un souci

ca fonctionne tres bien sur le fichier qui est joint , mais j'ai voulu faire un essai sur un nouveau classeur et rien ne se passe
je dois mettre le code au endroit ?

MERCI
 

Fichiers joints

job75

XLDnaute Barbatruc
Pour que la duplication puisse se faire sur un autre classeur il faut préciser le classeur ThisWorkbook où se trouve l'image :
VB:
Sub Dupliquer()
'se lance par les touches Ctrl+D
ThisWorkbook.Sheets("Feuil1").Shapes("Signe de multiplication 2").Copy
ActiveSheet.Paste
With Selection
    .Top = ActiveCell.Top + (ActiveCell.Height - .Height) / 2
    .Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
End With
ActiveCell.Activate 'ôte le focus de l'objet
End Sub
Fichier (2), pour tester créez un nouveau classeur avec les touches Ctrl+N.
 

Fichiers joints

mapomme

XLDnaute Barbatruc
Supporter XLD
sans vouloir abuser m'expliquer ce que je ne fais pas ?
  1. Il faut que le fichier soit enregistré sous un format autorisant les macros (et dans ce cas le fichier aura pour extension .xlsm)
  2. dans l'environnement VBA, il faut copier la macro dans le module de ThisWorkbook du nouveau fichier
nota:
  • on cite la personne qui doit répondre à la question
  • j'ai répondu pour ma méthode
 

job75

XLDnaute Barbatruc
Avec ma solution il suffit de mettre la macro dans un module standard, comme je l'ai fait.

Il faut bien sûr qu'il y ait l'image dans une des feuilles du classeur, puis :

- touches Al+F11 pour aller dans VBA

- menu Insertion => Module

- y coller la macro du post #11

- dans la macro adapter le nom de la feuille et le nom de l'image

- revenir sur la feuille de calcul, touches Alt+F8 pour afficher les macros, sélectionner la macro Dupliquer, bouton Options => entrer "d" pour créer le raccourci clavier.
 

Patrick.75019

XLDnaute Occasionnel
  1. Il faut que le fichier soit enregistré sous un format autorisant les macros (et dans ce cas le fichier aura pour extension .xlsm)
  2. dans l'environnement VBA, il faut copier la macro dans le module de ThisWorkbook du nouveau fichier
nota:
  • on cite la personne qui doit répondre à la question
  • j'ai répondu pour ma méthode
Merci mapomme mais rien a faire
voici ce que j'ai fait ( le voir le classeur ) je ne suis pas doué et l'on pourrait s'en douter hihihi
ou dois -je mettre ce code
j'ai bien enregistré en formta autorisant les macros et insere le code dans this worbook
i je n' arrive pas avec de nouvelles explications , je lacherai l'affaire
merci
 

Fichiers joints

job75

XLDnaute Barbatruc
Je viens de donner au post #14 des explications claires.

Il s'agit du B A BA pour commencer à utiliser VBA, si vous abandonnez vous ne ferez plus jamais rien, persévérez.

A+
 

Patrick.75019

XLDnaute Occasionnel
j'ai bien compris et j'ai bien lu la réponse du #post 14 mais je n'y arrive pas et pourtant j'ai fait moult essais
Est -ce que vous pourriez regarder mon 'classeur Croix dans cellules' et me dire ou je commet l'erreur et ou je devrais inserer ce code
je pense que ca doit etre tout bete , mais quelque chose m'echappe
Merci
 

Patrick.75019

XLDnaute Occasionnel
Bon c'est con mais je n'y arrive toujours pas pourtant j'en conviens tout est clairement expliqué
je vous remercie tous de tous vos efforts fournis
mais je dois me rendre a l'évidence le VBA ce ne doit pas etre pour moi ...
donc je lache l'affaire et j'y reviendrais peut -etre ultérieurement
bon grand Week-end
@+
 

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