MACRO EXCEL Aidez un débutant
Dernière réponse : dans Programmation
Bonjour!
comment récupère-t'on le nº de la ligne de la cellule que l'on vient de deselectionner (ActiveCell.Row donne la cellule d'arrivée, je voudrais celle de départ).
Merci !!
comment récupère-t'on le nº de la ligne de la cellule que l'on vient de deselectionner (ActiveCell.Row donne la cellule d'arrivée, je voudrais celle de départ).
Merci !!
Autres pages sur : macro excel aidez debutant
Lassé par la pub ? Créez un compte
Bonjour,
Ce n'est pas prévu au programme.
Il faut créer une variable de feuille, et stocker en permanence le Target.Row issu de l'évènement Sélection_Change
Essaie dans un nouveau classeur et colle le code suivant dans le module de Feuil1
Dim TROW
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Vous venez de quitter la ligne: " & TROW
TROW = Target.Row
End Sub
Ensuite tu peux cliquer n'importe ou dans la Feuille 1
Ok ?
Ce n'est pas prévu au programme.
Il faut créer une variable de feuille, et stocker en permanence le Target.Row issu de l'évènement Sélection_Change
Essaie dans un nouveau classeur et colle le code suivant dans le module de Feuil1
Dim TROW
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Vous venez de quitter la ligne: " & TROW
TROW = Target.Row
End Sub
Ensuite tu peux cliquer n'importe ou dans la Feuille 1
Ok ?
bonsoir,
je ne refuse pas d'aider mais je ne lis pas dans le marc de café : Pour obtenir une réponse précise il faut une question précise.
"contient l'un des noms" c'est du charabia :
"azertyuiop" contient "rty"?
habituellement on fait plutôt dans le genre :
Sub Test
If Range("A1").Text = "monstring" Then Beep
End Sub
Si ta question sous tend cette réponse alors tout dépend du nombre de nom1, nom2...
pour 2 ou 3 une Sub comme précédement avec if ... Else if ... Else ... End if peut suffire
pour une dizaine il faut envisager un select case
au delà ça se discute : C'est quoi nom1, nom2, des noms déclarés dans insertion nom, des variables, des strings? D'ou ils sortent et il y en a combien...
A+
je ne refuse pas d'aider mais je ne lis pas dans le marc de café : Pour obtenir une réponse précise il faut une question précise.
"contient l'un des noms" c'est du charabia :
"azertyuiop" contient "rty"?
habituellement on fait plutôt dans le genre :
Sub Test
If Range("A1").Text = "monstring" Then Beep
End Sub
Si ta question sous tend cette réponse alors tout dépend du nombre de nom1, nom2...
pour 2 ou 3 une Sub comme précédement avec if ... Else if ... Else ... End if peut suffire
pour une dizaine il faut envisager un select case
au delà ça se discute : C'est quoi nom1, nom2, des noms déclarés dans insertion nom, des variables, des strings? D'ou ils sortent et il y en a combien...
A+
Ouep, effectivement c'était précis.
En fait je veux tester la valeur text "destination" saisie au préalable par l'utilisateur:
Je veux faire:
-> Si cette valeur a (ex: "CARREFOUR DIJON") contient un élément de la liste ("PARIS", "DIJON", "TOURS"....) - une liste d'environ 15 mots - alors ...
Je parle de "contenir" au sens partiel : "CARREFOUR DIJON" contient "DIJON".
Tu vois ce que je veux dire ?
En fait je veux tester la valeur text "destination" saisie au préalable par l'utilisateur:
Je veux faire:
-> Si cette valeur a (ex: "CARREFOUR DIJON") contient un élément de la liste ("PARIS", "DIJON", "TOURS"....) - une liste d'environ 15 mots - alors ...
Je parle de "contenir" au sens partiel : "CARREFOUR DIJON" contient "DIJON".
Tu vois ce que je veux dire ?
Ren
Je t'en met une qui suppose que tu déclares ta liste de recherche dans la macro :
Dans cette macro tu peux remplacer ou ajouter autant de villes que tu veux, tu auras un message si la variable TestChaine comporte une des villes...
Sub Test()
TestChaine = "CARREFOUR BOURG"
Dim VList()
VList = Array("PARIS", "LYON", "BOURG")
For i = 0 To UBound(VList)
k = InStr(1, TestChaine, VList(i))
If k > 0 Then MsgBox "Trouvé " & VList(i)
Next
End Sub
Je t'en fais une autre à adapter car on nage toujours dans l'imprécision...
Si ta liste se trouve dans une plage de cellule nommée (ou non) tu peux aussi faire :
Sub Test() 'non testée
TestChaine = "CARREFOUR BOURG"
For each o in "MaPlageNommée" '(ou "A1:A15")...
k = InStr(1, TestChaine, o.Text)
If k > 0 Then MsgBox "Trouvé " & VList(i)
Next
End Sub
A+
Je t'en met une qui suppose que tu déclares ta liste de recherche dans la macro :
Dans cette macro tu peux remplacer ou ajouter autant de villes que tu veux, tu auras un message si la variable TestChaine comporte une des villes...
Sub Test()
TestChaine = "CARREFOUR BOURG"
Dim VList()
VList = Array("PARIS", "LYON", "BOURG")
For i = 0 To UBound(VList)
k = InStr(1, TestChaine, VList(i))
If k > 0 Then MsgBox "Trouvé " & VList(i)
Next
End Sub
Je t'en fais une autre à adapter car on nage toujours dans l'imprécision...
Si ta liste se trouve dans une plage de cellule nommée (ou non) tu peux aussi faire :
Sub Test() 'non testée
TestChaine = "CARREFOUR BOURG"
For each o in "MaPlageNommée" '(ou "A1:A15")...
k = InStr(1, TestChaine, o.Text)
If k > 0 Then MsgBox "Trouvé " & VList(i)
Next
End Sub
A+
Ca marche au poil!
Mais sans le tableau...
Quand j'ecris VList = Array("PARIS", "LYON", "BOURG")
Il me fait une erreur de compilation "Impossible d'assigner à une matrice" (je traduis de l'espagnol) en mettant le curseur sur "VList ="
Je comprends pas pourquoi il me laisse pas remplir ce foutu tableau!! >(
Mais sans le tableau...
Quand j'ecris VList = Array("PARIS", "LYON", "BOURG")
Il me fait une erreur de compilation "Impossible d'assigner à une matrice" (je traduis de l'espagnol) en mettant le curseur sur "VList ="
Je comprends pas pourquoi il me laisse pas remplir ce foutu tableau!! >(
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :