Se connecter avec
S'enregistrer | Connectez-vous

MACRO EXCEL Aidez un débutant

Dernière réponse : dans Programmation
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 ?

Merci pour l'explication précédente.
Dis donc j'ai besoin de faire un test sur un text1 saisi dans une cellule, comment on code:
If text1 "contient l'un des noms" (nom1, nom2,..) Then .. ?

Sans vouloir abuser de ta sympathie :) 

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+

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 ?

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+

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!! >(
Lassé par la pub ? Créez un compte