1ere cellule sélectionnée d'une plage

- - Dernière réponse : franc38
Messages postés
26
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
9 octobre 2019
- 7 juil. 2019 à 04:44
bonjour
Bonjour

Je souhaiterais que si la plage A1:A2 est sélectionnée en commençant par A1 seule A1 doit prise en compte, A2 le serait que si elle avait été sélectionnée en premier. Idem pour A1:B1 .
Si cela est possible quel serait le code à utiliser ?

Merci

Jean53
Afficher la suite 

5 réponses

Messages postés
26
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
9 octobre 2019
1
0
Merci
Bonjour
Sur la feuille concernée, clic droit sur le nom de la feuille
choisir Visualiser le code
Copier cette macro
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Item(1).Select
ActiveCell = "Bonjour"
End Sub

Dans l'exemple ci dessus dans la 1ère cellule sélectionnée il écrit "Bonjour"
A+ François
Bonjour François

Avec le code reçu la valeur mentionnée dans ActiveCell se répète lorsqu'il est cliqué sur n'importe quelle cellule et elle remplace son contenu, ce que je ne souhaite pas.
Dans mon fichier actuel existe un tableau. Un clic sur une des cellules de ce tableau appelle une macro qui copie automatiquement sa valeur dans une seule et même autre cellule située hors tableau. Le but de ma demande est d'éviter que si dans ce tableau par erreur il est sélectionné 2 cellules (ou plus) au lieu d'une une copie non désirée se réalise.
-------------------------------------------------Exemple----------------------------------------------------------------
On souhaite copier A1, un clic sur A1 appelle la macro "CopierA1", le problème est que si A2 a été sélectionné également la macro "CopierA2" s'exécute également et elle écrase le résultat de la macro "CopierA1". En fait il faudrait que ne soit appelée qu'une macro si plusieurs cellules sont sélectionnées et que ce soit celle concernant la première cellule chronologiquement sélectionnée.

Cordialement
Commenter la réponse de franc38
Messages postés
50083
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 octobre 2019
10953
0
Merci
Bonjour Jean53.

Je n'ai pas compris ce que tu veux dire par "seule A1 soit prise en compte" ...
- Si tu sélectionnes A1:A2 c'est A1 la cellule active
- Si tu sélectionnes A2:A1 c'est A2 la cellule active
Quelle que soit la plage sélectionnée, celle qui est active est surlignée.
Quand je dis qu'une cellule est active, cela signifie que si tu tapes quelque chose au clavier, c'est dans cette cellule que cela se passe.
Bonjour Raymond
Ma réponse à François explique la situation.
En fait il faudrait que seule la macro concernant la première cellule chronologiquement sélectionnée s'exécute.

cordialement
Commenter la réponse de Raymond PENTIER
Messages postés
50083
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 octobre 2019
10953
0
Merci
Il aurait fallu que je devine que tu parlais de macros ...
Commenter la réponse de Raymond PENTIER
Messages postés
26
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
9 octobre 2019
1
0
Merci
Bonjour
Pour interdire la sélection de plusieurs cellules il suffit de mettre:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.Select

'Tu peux ajouter:
if target.address="$A$1" then CopierA1

End Sub

A+ François
Bonjour François

Le code "ActiveCell.Select" empêche bien de sélectionner plusieurs cellules. L'interdiction reste.
J'ai besoin que ne soit sélectionnée qu'une seule cellule EN MÊME TEMPS, mais que l'on puisse sélectionner d'autres cellules uniques par la suite.
Est-ce possible ?

Cordialement

Jean
Commenter la réponse de franc38
Messages postés
26
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
9 octobre 2019
1
0
Merci
Bonjour
Si tu as essayé tu peux constater que tu peux sélectionner d'autre cellule...
Par contre c'est vrai que sur cette feuille là tu ne peux plus sélectionner plusieurs cellules...

A+ François
Commenter la réponse de franc38