Reconnaissance automatique d'une ligne sélectionnée - VB/VBA/VBS - Programmation
Marsh Posté le 09-03-2012 à 10:48:32
Hello
Bah il faut utiliser le target de "ByVal Target as Range"
Par exemple pour envoyer un message de la ligne sélectionnée ca serait :
Code :
|
Marsh Posté le 12-03-2012 à 22:21:14
SuppotDeSaTante a écrit : Hello
|
Bonsoir et merci pour ton information qui m'a permis de coder pour contrôler une zone et autoriser sa modification par la saisis d'un mot de passe.
Si éventuellement tu as la combine pour reconnaître une désélection dans une ListBox, je suis preneur. J'ai posé en effet une question, il y a plusieurs semaines et, malgré pas mal de lectures, aucun ne m'a pour l'instant donné la solution. (cf. question du 7/02/2012 - Reconnaissance désélection dans ListBox).
Bonne soirée ! Cordialement.
Marsh Posté le 13-03-2012 à 13:58:22
Hello
Pour ta listbox je ne comprends pas ton souci...
En fait pour savoir si c'est désélectionné, il faut reparcourir le fichier et le comparer avant la désélection.
Mais c'est peut etre pas ca que tu veux...
Surement pour ca que personne à répondu C'est pas très très clair
Marsh Posté le 13-03-2012 à 21:14:14
SuppotDeSaTante a écrit : Hello |
Bsr.
Ok. Je vais donc être plus simple !
Dans un UserForm, j'ai une ListBox qui comprend plusieurs colonnes, dont le contenu change régulièrement. J'ai programmé l'option de multi sélection qui me permet de sélectionner plusieurs lignes en même temps.
Quand j'ai besoin de calculer la somme des lignes que je sélectionne, à chaque clic sur n'importe quelle ligne de la ListBox, son montant est automatiquement chargé dans une autre ListBox qui fait office de calculette. Or, quand je déselectionne une ligne dans ma ListBox à plusieurs colonnes, il faudrait que le montant soit soustrait alors qu'il s'ajoute une nouvelle fois. Le montant s'en trouve donc faussé.
Par conséquent, il faut que je parvienne à faire reconnaître la déselection de n'importe quelle ligne qui était déjà en surbrillance mais, malgré ma réflexion, je ne trouve pas. Je précise que le code que j'ai saisi fonctionne parfaitement et reconnaît toute les lignes que je sélectionne dans la ListBox.
Est-ce plus clair ?
Merci si quelqu'un peut me répondre.
A.L
Marsh Posté le 13-03-2012 à 21:24:58
A partir du moment où tu sais ceux qui sont selectionnés, tu sais ceux qui ne le sont pas.
Tu listes tous les items de ta listbox, si c'est selectionné tu ajoutes, sinon tu soustrais.
Tu sais afficher si c'est selectionné (le code de ton post precedent), tu sais donc si ca ne l'est pas.
If .selected(i)=false
Marsh Posté le 14-03-2012 à 21:17:00
J'ai déjà essayé avec ce que tu proposes mais cela ne reconnait pas la déselection d'une ligne déjà sélectionnée parmi d'autres lignes. Donc :
- soit je ne place pas le code au bon endroit dans la procédure ;
- soit je dois activer une autre procédure spécifique ???
A.L
Marsh Posté le 16-03-2012 à 15:26:10
Bah écoute je n'ai aucun souci...
Il faut essayer avant de dire que ca ne marche pas...
Donc, si j'ai une liste que j'appelle : Liste
(toujours cette imagination débordante !)
Dans cette liste j'ai ces valeurs en colonne 0 (la 1ère)
1000
2000
3000
4000
Avec ce code :
Code :
|
Si je sélectionne 1000 et 4000, il renvoie bien 0 car 2000 et 3000 sont renvoyés comme négatifs et 1000 + 4000 - 2000 - 3000 = 0
Idem :
Si je sélectionne 1000 seulement, ca me renvoie -8000 (1000 - 2000 - 3000 - 4000 = -8000)
Si je sélectionne 1000, 3000 et 4000 il me renvoie 6000 (1000 - 2000 + 3000 + 4000 = 6000)
Etc.
N'oublie pas ma fête Pas le bon post
Marsh Posté le 16-03-2012 à 23:18:23
Merci Dje69r
C'est sympa d'avoir réfléchi sur le sujet. Dès que je le peux - étant absent ce WE - je tente l'adaptation et je te dirai.
Merci encore.
A+.
A.L
Marsh Posté le 01-03-2012 à 22:09:49
Bonsoir à tous.
Je travaille sur Vba pour Excel 2003 et j’ai besoin d’un coup de main. A l’intérieur de la procédure suivante, dans Workbook :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
End sub
… je souhaite, dans une base de données, empêcher la modification de n’importe quelle ligne que je sélectionne (par exemple :interdire une insertion de ligne, une suppression de ligne, etc…).
Mon souci est que je n’arrive pas à faire reconnaître la ligne que je sélectionne quand je clique sur la partie gauche de la feuille de calcul (partie grise comprenant les numéros de lignes).
Quelqu’un peut-il me donner le code qu’il écrirait pour que cette ligne variable soit reconnue dès que je la sélectionne.
Merci pour votre aide. A+
AlainLi