Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1748 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Récupération de la position d'un texte dans une feuille excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Récupération de la position d'un texte dans une feuille excel

n°2149883
cfgluciole​1
Posté le 19-07-2012 à 14:42:17  profilanswer
 

Bonjour à tous,
 
Après avoir écumé les forums à la recherche d'une solution (et elles sont nombreuses, mais je n'ai pas réussi à les adapter à mon problème) je pose ma question ici:
 
Je dispose d'un fichier Test1.xls qui contient des données variables (nombres et texte)
 
Mon but est de faire une recherche sur toute la feuille (je ne veux pas me limiter au tableau car je peux avoir d'autres données situées en dehors du tableau dans l'avenir) pour trouver un mot (prenons ici le mot position) et une fois que j'ai trouvé ce mot, je cherche à obtenir sa position sous un format Lettre de la colonne suivi du numéro de la ligne (B1 par exemple)
 
J'ai tenté d'utiliser find, match, recherchev sans succès (ou peut être les ai je mal utilisé?).
 
J'utilise excel 2007.
 
Merci d'avance!
 
Cfgluciole1


Message édité par cfgluciole1 le 23-07-2012 à 10:08:59
mood
Publicité
Posté le 19-07-2012 à 14:42:17  profilanswer
 

n°2149886
vave
Nice to meet me
Posté le 19-07-2012 à 14:52:48  profilanswer
 

Bonjour,
Voici un exemple.
Tu lance la macro, ça te demande le mot à chercher, et te renvois la 1ère adresse trouvée.
 

Code :
  1. Sub trouver_un_mot()
  2. Dim c As Range
  3. Dim flag As Boolean
  4. Dim Mot As String
  5.     Mot = InputBox("Mot à trouver" )
  6.    
  7.     For Each c In ActiveSheet.UsedRange
  8.         If c.Value = Mot Then
  9.             flag = True
  10.             Exit For
  11.         End If
  12.     Next
  13.    
  14.     If flag Then
  15.         MsgBox "Le mot " & Mot & " a été trouvé à la cellule " & c.Address
  16.     Else
  17.         MsgBox "le mot n'a pas été trouvé"
  18.     End If
  19. End Sub


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2149895
cfgluciole​1
Posté le 19-07-2012 à 15:27:00  profilanswer
 

Excellent! Je l'ai un petit peu adapté pour ne pas avoir à rentrer le mot dans une InputBox au départ:  
 

Code :
  1. Sheets(Array("Liste" )).Select
  2. Dim c1 As Range
  3. Dim flag As Boolean
  4. Dim Mot As String
  5. Mot = "Position"
  6. For Each c In ActiveSheet.UsedRange
  7.     If c.Value = Mot Then
  8.         flag = True
  9. Exit For
  10. End If
  11. Next


 
 
Mais lorsque j'essaie d'utiliser la donnée (c.address) j'obtiens une erreur.
Je m'explique:
 
J'essaie d'utiliser l'adresse de la cellule comme argument pour un filtre:
 

Code :
  1. ActiveSheet.Range("c.address:$F$66" ).AutoFilter Field:=1, Criteria1:=Sheets("Liste" ).Range("B2" ).Value


Mais j'obtiens une erreur et je ne sais pas ce que je pourrais faire ... est ce parce que l'argument que je donne à la fonction range n'est pas au bon format?
 
Merci d'avance,
 
Cfgluciole1

n°2149897
vave
Nice to meet me
Posté le 19-07-2012 à 15:33:43  profilanswer
 

Les variables ne doivent pas être entre guillemets.
Il faut que tu construise ta chaîne de caractères en concaténant la variante et le reste
 

Code :
  1. ActiveSheet.Range(c.Address & ":$F$66" ).AutoFilter Field:=1, Criteria1:=Sheets("Liste" ).Range("B2" ).Value


 


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2149978
cfgluciole​1
Posté le 20-07-2012 à 10:34:20  profilanswer
 

Bonjour oovaveoo,
 
Tout marche parfaitement, merci de ton aide ;)
 
Cfgluciole1

n°2150064
cfgluciole​1
Posté le 20-07-2012 à 14:34:16  profilanswer
 

Bonjour,
 
Un petit ajustement:  
 
Je cherche maintenant à avoir 2 variables dans ma fonction range mais la formule suivante me renvoie une erreur:
 

Code :
  1. ActiveSheet.Range(c1.Address & c2.Address).AutoFilter Field:=1, Criteria1:=Sheets("Liste" ).Range("B2" ).Value


 
J'ai pourtant défini c1 et c2:
 

Code :
  1. Dim c1 As Range
  2. Dim c2 As Range


 
Et il me semble que la syntaxe est correcte non? (bien évidemment elle ne doit pas l'être sinon je ne serais pas là :( )
 
Merci beaucoup,
 
Cfgluciole1

n°2150077
vave
Nice to meet me
Posté le 20-07-2012 à 14:55:57  profilanswer
 

Bonjour,
il faut les séparer par une virgule

Code :
  1. ActiveSheet.Range(c1.Address , c2.Address)


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2150104
cfgluciole​1
Posté le 20-07-2012 à 15:53:53  profilanswer
 

Bonjour ooveveoo,
 
Décidément, la ponctuation n'est pas mon fort :D
 
Merci et bonne après midi,
 
Cfgluciole1


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Récupération de la position d'un texte dans une feuille excel

 

Sujets relatifs
Macro sur plusieurs fichier Excel d'un même répertoireExcel: Mise en forme
[Macro Excel] Dupliquer sans remplacer[macro excel] emplacement fixe mais nom de fichier changeant
Tableau PHP & Fichier texte[Excel - Macro] Boucle Do, trouver l'erreur...
[resolu]Problème : récuperation de données d'un utilisateur facebookRecherche Excel / Dernier événement
macro excel / classement de valeursmacro Excel pour un graphique dynamique
Plus de sujets relatifs à : [Résolu] Récupération de la position d'un texte dans une feuille excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR