OVH Cloud OVH Cloud

VBA, faire une mcro ???

63 réponses
Avatar
LE TROLL
Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !

10 réponses

1 2 3 4 5
Avatar
Rai
Bonjour,

Si je regarde ta signature, je comprends pourquoi tu veux absolument passer par une macro ...
... en effet, pourquoi utiliser une pince à épiler quand on peut utiliser une hache pour enlever une écharde !! ;o))

Bon, trève de plaisanterie.
Tu peux certainnement utiliser une macro, mais tu peux aussi utiliser la validation de données.
- sélectionner les cellules qui servent à pointer avec "X", pourquoi pas directement sélectionner toute la colonne
- Menu 'Données' / 'Validation'
- Autoriser 'liste'
- dans 'source' tu mets X

voilà, ça devrait pas mal fonctionner maintenant.

Pour éviter le problème maj/min et ainsi autoriser la saisie de x ou X,
tu pouvais aussi inclure la fonction majuscule() dans tes formules.
Plutôt que de tester =si(G2="X";blabla;bloblo) tu peux écrire =si(majuscule(G2)="X"; ....)

Bon Dimanche

Rai



"LE TROLL" <le a écrit dans le message de news:
Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !





Avatar
LE TROLL
Salut, merci, non, je ne teste valide pas toute la colonne car il y
a des trous (chèque non encaissé par exemple), par contre, si tu pouvais me
faire ma macro comme demandé car je ne connais pas le VBA, merci :o)
-----

"Rai" a écrit dans le message de news:
41b2d068$0$3415$
Bonjour,

Si je regarde ta signature, je comprends pourquoi tu veux absolument passer
par une macro ...
... en effet, pourquoi utiliser une pince à épiler quand on peut utiliser
une hache pour enlever une écharde !! ;o))

Bon, trève de plaisanterie.
Tu peux certainnement utiliser une macro, mais tu peux aussi utiliser la
validation de données.
- sélectionner les cellules qui servent à pointer avec "X", pourquoi pas
directement sélectionner toute la colonne
- Menu 'Données' / 'Validation'
- Autoriser 'liste'
- dans 'source' tu mets X

voilà, ça devrait pas mal fonctionner maintenant.

Pour éviter le problème maj/min et ainsi autoriser la saisie de x ou X,
tu pouvais aussi inclure la fonction majuscule() dans tes formules.
Plutôt que de tester =si(G2="X";blabla;bloblo) tu peux écrire
=si(majuscule(G2)="X"; ....)

Bon Dimanche

Rai



"LE TROLL" <le a écrit dans le message de news:

Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !





Avatar
Rai
Hey,

Si je veux j'écris la macro !
D'ailleurs, a priori tu connais un peu les macros puisque tu vuex utiliser les évennments de la feuille, appeler une procdure et que tu utilises des choses comme 'exit sub'.

Avant de partir là-dessus, je te conseille d'appuyer sur la touche F1 et de regarder comment fonctionne la validation.
Avec la validation, telle que je te l'ai décrite précédemment, tu peux mettre AU CHOIX 'X' ou rien dans les cellules validées.

Donc, si tu as des chèques non-encaissés tu laisse la cellule vide
Si tu as des comptes pointés ... tu mets X

Soit, je n'ai rien compris à tes besoins, soit il faut que tu les réexpliques.

Rai

"LE TROLL" <le a écrit dans le message de news: %
Salut, merci, non, je ne teste valide pas toute la colonne car il y
a des trous (chèque non encaissé par exemple), par contre, si tu pouvais me
faire ma macro comme demandé car je ne connais pas le VBA, merci :o)
-----

"Rai" a écrit dans le message de news:
41b2d068$0$3415$
Bonjour,

Si je regarde ta signature, je comprends pourquoi tu veux absolument passer
par une macro ...
... en effet, pourquoi utiliser une pince à épiler quand on peut utiliser
une hache pour enlever une écharde !! ;o))

Bon, trève de plaisanterie.
Tu peux certainnement utiliser une macro, mais tu peux aussi utiliser la
validation de données.
- sélectionner les cellules qui servent à pointer avec "X", pourquoi pas
directement sélectionner toute la colonne
- Menu 'Données' / 'Validation'
- Autoriser 'liste'
- dans 'source' tu mets X

voilà, ça devrait pas mal fonctionner maintenant.

Pour éviter le problème maj/min et ainsi autoriser la saisie de x ou X,
tu pouvais aussi inclure la fonction majuscule() dans tes formules.
Plutôt que de tester =si(G2="X";blabla;bloblo) tu peux écrire
=si(majuscule(G2)="X"; ....)

Bon Dimanche

Rai




Avatar
LeSteph
Bonjour,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Target = "X"
End Sub

'lSteph
'..un troll qui sait lâcher le manche de temps en temps respire!
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !





Avatar
LeSteph
...et au cas où tu doives faire dblclick ailleurs sans mettre de x:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.Column = 7 Then Target = "X"
End Sub

"LeSteph" a écrit dans le message de news:
%
Bonjour,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Target = "X"
End Sub

'lSteph
'..un troll qui sait lâcher le manche de temps en temps respire!
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le
compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !









Avatar
LE TROLL
Ben je connais le VB (C++, Asm, BAL, HTML), je programme depuis 25
ans, lol, mais pas le VBA, et je ne vais pas l'apprendre pour faire une
macro quand même, lol :o)
Alors si tu veux bien faire la mienne, il suffit de lui donner les fonctions
que j'indique, exclusivement, et toutes les fonction, merci encore :o)
------------


"Rai" a écrit dans le message de news:
41b2e22f$0$8092$
Hey,

Si je veux j'écris la macro !
D'ailleurs, a priori tu connais un peu les macros puisque tu vuex utiliser
les évennments de la feuille, appeler une procdure et que tu utilises des
choses comme 'exit sub'.

Avant de partir là-dessus, je te conseille d'appuyer sur la touche F1 et de
regarder comment fonctionne la validation.
Avec la validation, telle que je te l'ai décrite précédemment, tu peux
mettre AU CHOIX 'X' ou rien dans les cellules validées.

Donc, si tu as des chèques non-encaissés tu laisse la cellule vide
Si tu as des comptes pointés ... tu mets X

Soit, je n'ai rien compris à tes besoins, soit il faut que tu les
réexpliques.

Rai

"LE TROLL" <le a écrit dans le message de news:
%
Salut, merci, non, je ne teste valide pas toute la colonne car il y
a des trous (chèque non encaissé par exemple), par contre, si tu pouvais
me
faire ma macro comme demandé car je ne connais pas le VBA, merci :o)
-----

"Rai" a écrit dans le message de news:
41b2d068$0$3415$
Bonjour,

Si je regarde ta signature, je comprends pourquoi tu veux absolument
passer
par une macro ...
... en effet, pourquoi utiliser une pince à épiler quand on peut utiliser
une hache pour enlever une écharde !! ;o))

Bon, trève de plaisanterie.
Tu peux certainnement utiliser une macro, mais tu peux aussi utiliser la
validation de données.
- sélectionner les cellules qui servent à pointer avec "X", pourquoi
pas
directement sélectionner toute la colonne
- Menu 'Données' / 'Validation'
- Autoriser 'liste'
- dans 'source' tu mets X

voilà, ça devrait pas mal fonctionner maintenant.

Pour éviter le problème maj/min et ainsi autoriser la saisie de x ou X,
tu pouvais aussi inclure la fonction majuscule() dans tes formules.
Plutôt que de tester =si(G2="X";blabla;bloblo) tu peux écrire
=si(majuscule(G2)="X"; ....)

Bon Dimanche

Rai




Avatar
LE TROLL
Bonjour, merci, mais c'est juste un morceau, ça ne ressemble pas
trop à ma demande, lol, si tu veux biens regarder et faire exclusivement et
exactement ce que j'ai écrit (s'il te plaît), ça me suffira, car ça devrait
fonctionner ainsi, merci d'avance :o)
---------

"LeSteph" a écrit dans le message de news:

...et au cas où tu doives faire dblclick ailleurs sans mettre de x:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.Column = 7 Then Target = "X"
End Sub

"LeSteph" a écrit dans le message de news:
%
Bonjour,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Target = "X"
End Sub

'lSteph
'..un troll qui sait lâcher le manche de temps en temps respire!
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le
compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je
me trompe de lettre (m'astreignant à corriger), d'onc une macro serait
la bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !













Avatar
LeSteph
Re, bonjour,

Cela met un Xmajuscule dans ta colonne g sur double clic
donc cela résoud ci en objet:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le compte...



Et c'est bien en Majuscule!

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue,
C'est fait


comme suit:
Désolé ce que tu suggères ne convient pas du tout à ce que tu demandes.


Donc: faire
exclusivement et exactement ce que j'ai
proposé et cela devrait convenir.


.|

;-)

'lSteph

"LE TROLL" <le a écrit dans le message de news:
%
Bonjour, merci, mais c'est juste un morceau, ça ne ressemble pas
trop à ma demande, lol, si tu veux biens regarder et , car ça devrait
fonctionner ainsi, merci d'avance :o)
---------

"LeSteph" a écrit dans le message de news:

...et au cas où tu doives faire dblclick ailleurs sans mettre de x:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.Column = 7 Then Target = "X"
End Sub

"LeSteph" a écrit dans le message de news:
%
Bonjour,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Target = "X"
End Sub

'lSteph
'..un troll qui sait lâcher le manche de temps en temps respire!
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le
compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je
me trompe de lettre (m'astreignant à corriger), d'onc une macro serait
la bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !

















Avatar
LE TROLL
Salut 3, tiens, voici ce que j'ai fait (en 10 minutes et tout seul),
ça marche, saurais-tu l'optimiser ?

' macro auto-pointage module 1 : compta.xls
'
Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Columns("G")) <> "" Then
If Intersect(Target, Columns("G")) = " " Then: GoTo efface
If Len(Intersect(Target, Columns("G"))) > 1 Then: GoTo efface
Intersect(Target, Columns("G")) = UCase(Target)
Intersect(Target, Columns("G")) = "X"
End
End If
If Intersect(Target, Columns("G")) = "X" Then
efface:
Intersect(Target, Columns("G")) = ""
End
End If
End Sub


Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If Intersect(Target, Columns("G")) <> "X" And Intersect(Target,
Columns("G")) <> "x" Then
Intersect(Target, Columns("G")) = UCase(Target)
Intersect(Target, Columns("G")) = "X"
End
End If
If Intersect(Target, Columns("G")) = "X" Then
Intersect(Target, Columns("G")) = ""
End
End If
End Sub
-------------

C'est ça que je te demandais de faire (s'il te plaît), c'était un procédure
qui fonctionne, comme les deux que je viens de faire :o)

Merci si tu as des améliorations de code (moi je ne connais que VB) ???
----------


"LeSteph" a écrit dans le message de news:

Re, bonjour,

Cela met un Xmajuscule dans ta colonne g sur double clic
donc cela résoud ci en objet:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le
compte...



Et c'est bien en Majuscule!

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je me
trompe de lettre (m'astreignant à corriger), d'onc une macro serait la
bienvenue,
C'est fait


comme suit:
Désolé ce que tu suggères ne convient pas du tout à ce que tu demandes.


Donc: faire
exclusivement et exactement ce que j'ai
proposé et cela devrait convenir.


.|

;-)

'lSteph

"LE TROLL" <le a écrit dans le message de news:
%
Bonjour, merci, mais c'est juste un morceau, ça ne ressemble pas
trop à ma demande, lol, si tu veux biens regarder et , car ça devrait
fonctionner ainsi, merci d'avance :o)
---------

"LeSteph" a écrit dans le message de news:

...et au cas où tu doives faire dblclick ailleurs sans mettre de x:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.Column = 7 Then Target = "X"
End Sub

"LeSteph" a écrit dans le message de news:
%
Bonjour,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Target = "X"
End Sub

'lSteph
'..un troll qui sait lâcher le manche de temps en temps respire!
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

En VBA, comment faire une macro dans Excel, soit:

Objet: Pour pointer un compte, lors du rapprochement avec le relevé de
compte, je coche une case d'un "X" graissé en majuscule quand chaque
opération est identique sur le relevé et sur Excel où je fais le
compte...

Problème, quand je coche, ça m'oblige à mettre en majuscule, et ou, je
me trompe de lettre (m'astreignant à corriger), d'onc une macro serait
la bienvenue, comme suit:


' nb, la colonne "G" est déjà graissée.
'
Sub Worksheet_Change...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub Worksheet_BeforeDoubleClick...
Si Colonne = "G" Alors: Call ecrit_cellule
End Sub
'
Sub ecrit_cellule()
On Error Resume Next
Si (Colonne "G" Cellule_Active) <> "X" alors:
Met dans (Colonne G Cellule_Active) = majuscules
Ecrit (Colonne "G" Cellule_Active) = "X"
Exit Sub
Fin de Si
Ecrit (Colonne "G" Cellule_Active) = ""
End Sub

---------------------------------
Merci de m'écrire cette macro.
---------------------------------

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !





















Avatar
LE TROLL
Salut 3, tiens, voici ce que j'ai fait (en 10 minutes et tout seul),
ça marche, saurais-tu l'optimiser ?

' macro auto-pointage module 1 : compta.xls
'
Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Columns("G")) <> "" Then
If Intersect(Target, Columns("G")) = " " Then: GoTo efface
If Len(Intersect(Target, Columns("G"))) > 1 Then: GoTo efface
Intersect(Target, Columns("G")) = UCase(Target)
Intersect(Target, Columns("G")) = "X"
End
End If
If Intersect(Target, Columns("G")) = "X" Then
efface:
Intersect(Target, Columns("G")) = ""
End
End If
End Sub


Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If Intersect(Target, Columns("G")) <> "X" And Intersect(Target,
Columns("G")) <> "x" Then
Intersect(Target, Columns("G")) = UCase(Target)
Intersect(Target, Columns("G")) = "X"
End
End If
If Intersect(Target, Columns("G")) = "X" Then
Intersect(Target, Columns("G")) = ""
End
End If
End Sub
-------------

C'est ça que je te demandais de faire (s'il te plaît), c'était un procédure
qui fonctionne, comme les deux que je viens de faire :o)

Merci si tu as des améliorations de code (moi je ne connais que VB) ???
----------


"Rai" a écrit dans le message de news:
41b2e22f$0$8092$
Hey,

Si je veux j'écris la macro !
D'ailleurs, a priori tu connais un peu les macros puisque tu vuex utiliser
les évennments de la feuille, appeler une procdure et que tu utilises des
choses comme 'exit sub'.

Avant de partir là-dessus, je te conseille d'appuyer sur la touche F1 et de
regarder comment fonctionne la validation.
Avec la validation, telle que je te l'ai décrite précédemment, tu peux
mettre AU CHOIX 'X' ou rien dans les cellules validées.

Donc, si tu as des chèques non-encaissés tu laisse la cellule vide
Si tu as des comptes pointés ... tu mets X

Soit, je n'ai rien compris à tes besoins, soit il faut que tu les
réexpliques.

Rai

"LE TROLL" <le a écrit dans le message de news:
%
Salut, merci, non, je ne teste valide pas toute la colonne car il y
a des trous (chèque non encaissé par exemple), par contre, si tu pouvais
me
faire ma macro comme demandé car je ne connais pas le VBA, merci :o)
-----

"Rai" a écrit dans le message de news:
41b2d068$0$3415$
Bonjour,

Si je regarde ta signature, je comprends pourquoi tu veux absolument
passer
par une macro ...
... en effet, pourquoi utiliser une pince à épiler quand on peut utiliser
une hache pour enlever une écharde !! ;o))

Bon, trève de plaisanterie.
Tu peux certainnement utiliser une macro, mais tu peux aussi utiliser la
validation de données.
- sélectionner les cellules qui servent à pointer avec "X", pourquoi
pas
directement sélectionner toute la colonne
- Menu 'Données' / 'Validation'
- Autoriser 'liste'
- dans 'source' tu mets X

voilà, ça devrait pas mal fonctionner maintenant.

Pour éviter le problème maj/min et ainsi autoriser la saisie de x ou X,
tu pouvais aussi inclure la fonction majuscule() dans tes formules.
Plutôt que de tester =si(G2="X";blabla;bloblo) tu peux écrire
=si(majuscule(G2)="X"; ....)

Bon Dimanche

Rai




1 2 3 4 5