[déplacé VB6 -> VBA] Rechercher un nom dans une ligne et recuperer le numero de [Résolu]

Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010
- - Dernière réponse : cs_Alban83
Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010
- 3 juil. 2009 à 13:37
Bonjour,

Ma mission de stage en entreprise porte sur la conception d'une macro avec excel et vb mais je ne metrisse pas du tt VB. C'est pr cela que je demande de l'aide.

Mon probleme:

J'ai un tableau ou il y a une multitude de colonne de type: Ref; Nom; Date;Net euro; Nb utilisateurs.....
Ce tableau est consu tt les mois mais il peut y avoir plus ou moin de colonnes chaque mois.
Ma macro fait des operations avec differente colonnes, c'est colonne y sont tjrs mais pas forcement a la meme place.
Je n'arrive pas a savoir comment je peux chercher la colenne par l'intermediaire de son nom et recuperer le numero de la conlonne pour l'utiliser dans la suite de ma macro?

Vous pouvez m'aider ?

Merci d'avance
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
3
Merci
bonjour
tout d'abord rechercher le nombre de colonnes

nbColonnes = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column

ensuite faire une boucle  pour rechercher ton libellé de colonne

dim colNom as integer, colRef as integer ' une variable par numéro de colonne dont tu as besoin
for i = 1 to nbColonnesif cells(1,i).text "Nom" then colNom iif cells(1,i).text "Ref" then colRef i
next i

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 211 internautes nous ont dit merci ce mois-ci

Commenter la réponse de pile_poil
Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010
0
Merci
Merci pour ta solution! ça fonctionne.
Peux tu juste me dire si le role de: nbColonnes = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column
c'est de trouver la derniere colonne et si oui pourquoi c'est tres different de ce que j'utise pour trouver la derniere ligne: ligne = Range("A1").End(xlDown).Row

Mais encor merci pour ton aide
Commenter la réponse de cs_Alban83
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
0
Merci
Attention
nbLignes = Range("A1").End(xlDown).Row
te donnes le nombre de ligne JUSQU'A la premiere cellule vide
exemple dans une feuille excel qui a 5 lignes dont la ligne 3 est vide cela te donneras 2 comme résultat
par contre
nbLignes = Range("A65536").End(xlUp).Row
te donneras bien 5
de meme que
nbLignes = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

dans une feuille excel qui a 5 colonnes dont la colonne 3 est vide
nbColonnes = Range("A1").End(xlToRight).Column  'donne 2
nbColonnes = Range("IV1").End(xlToLeft).Column 'donne 5
nbColonnes = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column ' donne 5

a toi de choisir ce qui te convient le mieux suivant tes besoins

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Commenter la réponse de pile_poil
Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010
0
Merci
Ok, ta solution est plus sur je pense donc je vais la prendre.
encor merci pr le tps que tu m'as consacré.
Commenter la réponse de cs_Alban83