RESOLU - execute macro à la séléction d'une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Encore besoin de vous 🙂

J'ai une macro qui exécute ma macro quand la valeur d'une cellule change :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target as Range)
    If target.address="$A$1" then
      'code
    end if
En sub

Mon besoin est le suivant :
Je souhaite que ma macro soit exécutée à la sélection de la cellule (pas au changement de valeur)

Pourriez-vous m'aider ?
Merci à vous tous,

Amicalement,
Lionel,
 
Dernière édition:
Re : execute macro à la séléction d'une cellule

Re-Bonjour Phillippe,

En fait je me suis très mal expliqué :

Ma macro DerniereLigne est la suivante :

Code:
Sub DerniereLigne()
'
' DerniereLigne Macro
'

'
    ActiveSheet.Cells(Rows.Count, "Q").End(xlUp)(1).Select
End Sub


La destination : colonne "Q" peut être sur n'importe quelle ligne en fonction des lignes déjà existantes.

Et j'ai besoin de ma macro suivante s'exécute à la sélection de la cellule de la colonne "Q" quelle que soit la ligne d'arrivée.


Code:
Call DerniereLigne
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    End If
End Sub

J'espère que c'est plus clair LOL

Amicalement,
Caliméro,
 
Dernière édition:
Re : execute macro à la séléction d'une cellule

Bonjour Philippe,
Bonjour à toutes et à tous,

J'ai presque résolu mon soucis (j'apprends grâce à vous tous)

Voici la macro que j'ai faite :

Code:
Sub copiecellule()
'
' copiecellule Macro
'

'
    Application.ScreenUpdating = False
    Sheets("RendezVous").Select
    Call DerniereLigne
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Range("RC[-6]").Select
End Sub

dans le module de la feuille :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("J3:J1000")) Is Nothing And Target.Count = 1 Then
Call copiecellule
End If
End Sub

Ma macro "DerniereLigne" beugue sur la ligne :
Range("RC[-6]").Select


enfin, la macro s'exécute en boucle et je ne sait pas l'arrêter.
Pourrait-elle s'exécuter uniquement en cas de modification et non à la sélection sélection ?

Je ne trouve pas la solution et je vous joins un petit fichier test.

Si vous pouvez m'aider ça serait super 🙂

Un grand merci,
Amicalement,
Lionel,
 

Pièces jointes

Dernière édition:
Re : execute macro à la séléction d'une cellule

Re-Bonjour Philippe ?

Ce n'est pas ce que je recherche mais c'est moi qui n'arrive pas à expliquer clairement.

Je vais reformuler "mon besoin" et je remplacerai le fichier que j'avais joint.

Merci de m'avoir répondu et d'être là ..... comme toujours 🙂
Amicalement,
Lionel,
 
Dernière édition:
Re : execute macro à la séléction d'une cellule

Bonsoir Philippe,
Bonsoir à toutes et à tous,

J'ai essayé de reformuler ma demande 🙂 .... j'espère y être arrivé mais pas sûr ...

La voici (et je l'ai également mise dans le nouveau fichier que je joins ) :

Le déroulement voulu :

1 - je clique sur la cellule colonne K (dans la cellule qui est en face de la dernière cellule remplie de la colonne Q)
2 - la macro s'exécute
dans les cellules de la colonne Q jusqu'à la dernière cellule remplie, il y a une formule. cette macro a pour but de copier/coller valeur de Q18 (dans le cas présent) mais ça peut être n'importe quelle cellule de la colonne Q toujours sur la dernière ligne remplie

La macro ne doit pas influer sur la cellule de la colonne K

Jusqu'à, tout va bien ... ça marche LOL

Ce que je n'arrive pas à faire :
3 - à la fin de l'exécution de la macro, la cellule sur laquelle j'ai cliqué (K18 dans l'exemple ( Range("RC[-6]").Select ) soit sélectionnée et que la macro ne tourne pas en boucle.

4 - Il faudrait que la macro soit réactivée quand je clique sur une cellule de la colonne S


J'espère que j'y suis arrivé 🙂

Encore merci,
Amicalement,
Caliméro,
 

Pièces jointes

Re : execute macro à la séléction d'une cellule

salut

une seule macro (avec ce que j'ai compris)
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
  Dim L As Long
  L = [Q1000].End(xlUp).Row  'dernière cellule non vide de Q
   If Intersect(R, Cells(L, "K")) Is Nothing Then Exit Sub 'pas K en face
   Cells(L, "Q").Copy Cells(L + 1, "Q")  'copie la formule en dessous et...
   Application.EnableEvents = 0: R.Select: Application.EnableEvents = 1 '...revient
End Sub
 

Pièces jointes

Re : execute macro à la séléction d'une cellule

Bonsoir Philippe,

Merci pour votre gentillesse.

J'ai du un peu mieux formuler "la chose" ...... Nous n'en sommes pas loin.
Pour ce soir, je déclare forfait.
Demain, j'y verrai plus clair et je complèterai l'explication de mon besoin.

Bonne nuit et à tous,
Amicalement,
Lionel,
 
Re : execute macro à la séléction d'une cellule

Bonjour Philippe,
Bonjour à toutes et à tous,

Votre macro est "presque exactement ce que je cherche" …. LOL

Ce qu'elle fait :
- quand on clique sur une cellule de la colonne K, elle copie la cellule de la colonne Q (en face)
- par exemple : K18 cliquée = copie Q18 sur Q19.

Ce qu'il me faudrait : quand on clique sur K, que la cellule en face Colonne Q soit copiée/valeur sur elle-même.
- par exemple : K18 cliquée = copie Q18 sur Q18 uniquement valeur.

Un grand merci pour votre aide 🙂

Je vous souhaite à tous un bon dimanche,
Amicalement,
Lionel,
 

Pièces jointes

Re : execute macro à la séléction d'une cellule

Bonjour à tous


Si j'ai bien compris et en reprenant Si... comme point de départ
Code vb:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
Dim L& 'Ici Jamal remis les dents pour sûr, pour Si... ;-)
L = [Q1000].End(3).Row 'dernière cellule non vide de Q
If Intersect(R, Cells(L, "K")) Is Nothing Then Exit Sub 'pas K en face
Cells(L, "Q").Value = Cells(L, "Q").Value 'simili/copie en valeur
Application.EnableEvents = 0
R.Select
Application.EnableEvents = 1 '...revient
End Sub


VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
Dim L& 'Et là, j'ai bien remis les dents pour sûr, pour Si... ;-)
    L = [Q1000].End(3).Row 'dernière cellule non vide de Q
    If Intersect(R, Cells(L, "K")) Is Nothing Then Exit Sub 'pas K en face
    Cells(L, "Q").Value = Cells(L, "Q").Value 'simili/copie en valeur
    Application.EnableEvents = 0
    R.Select
    Application.EnableEvents = 1 '...revient
End Sub









 
Dernière édition:
Re : execute macro à la séléction d'une cellule

Re à tous,

Exactement, "de la discussion jaillit la lumière" LOl
C'est exactement ça.
Un grand merci à vous,

Maintenant ça marche .... il ne me reste plus qu'à essayer de comprendre .....

Amicalement,
Caliméro 🙂
 
Re : execute macro à la séléction d'une cellule

salut

Re à tous,
...
Exactement, "de la discussion jaillit la lumière" LOl

Tu aurais vu plus clair bien avant si tu avais été plus clair dés le départ 😉 !

@Staple : des endives pour ce midi ? Et pour être plus sérieux, une question concernant ta "haute lumière"

Regarde la pièce jointe 928769
 

Pièces jointes

  • Indentation.jpg
    Indentation.jpg
    37.9 KB · Affichages: 34
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
243
Réponses
1
Affichages
221
Réponses
32
Affichages
1 K
Retour