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
 

Pièces jointes

  • Macro pour inserer une croix dans cellules.zip
    9.1 KB · Affichages: 19

Eric C

XLDnaute Barbatruc
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 :)
 

Pièces jointes

  • Patrick.75019- insérer X- v1.xlsm
    16.1 KB · Affichages: 3
Dernière édition:

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.
 

Pièces jointes

  • Dupliquer(1).xlsm
    18.1 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
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 Barbatruc
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
 

Pièces jointes

  • code dupliquer.zip
    28.6 KB · Affichages: 4

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.
 

Pièces jointes

  • Dupliquer(2).xlsm
    18.2 KB · Affichages: 6

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
 

Pièces jointes

  • Croix dans cellules.xlsm
    15.1 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
311 713
Messages
2 081 806
Membres
101 819
dernier inscrit
lukumubarth