Trouver une cellule en fonction de sa ligne et du titre de sa colonne
Bonjour,
Je suis débutant en VBA et tous mon code vient des tuto Youtube/Web et du générateur excel mais la je suis bloqué...
Pour résumer, j'ai des tableaux que je dois rentrer dans un formulaire intranet, les tableaux ne sont pas toujours dans le même ordre et n'ont pas toujours le même nombre de ligne et colonne.
J'ai automatiser le "Login" et Navigation vers le bon formulaire mais la je suis bloqué.
Mes tableaux commencent toujours ligne 15 et j'ai donné un nom à chaque colonne (après n'avoir garder que le premier mot) avec le code suivant :
Range("A15:A25").Select
ActiveWorkbook.Names.Add Name:=Range("A15").Value, RefersToR1C1:= _
"='Liste candidats'!R15C1:R25C1"Ensuite je sélectionne mon tableau :
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Dim Myrange As Range
Set rng1 = Cells.Find("*", [a1], xlFormulas, , xlByRows, xlPrevious)
Set rng2 = Cells.Find("*", [a1], xlFormulas, , xlByColumns, xlPrevious)
If Not rng1 Is Nothing Then
Set rng3 = Range([a16], Cells(rng1.Row, rng2.Column))
Application.Goto rng3
End If
Set Myrange = SelectionEt là j'aimerai remplir mon formulaire pour chacun de mes candidat (candidat = ligne)
For Each row in Myrange.row
For Each cell in row.cell
If Columm.cell=NOM Then
Select
idoc.all.P2300.Value = Selection.Value
End IF
Next Cell
For Each cell in row.cell
If Columm.cell=PRÉNOM Then
Select
idoc.all.P2300.Value = Selection.Value
End IF
Next Cell
'Appuyer sur le bouton Candidat suivant et recommencer
For Each Link In ElementCol
If Link.getAttribute("alt") = "Candidat suivant" Then
Link.Click
Exit For
End If
Next Link
Next rowJusqu'à maintenant j'ai tout réussi par moi même mais la je ne trouve aucun exemple pour trouver une cellule dans ma sélection avec le nom (titre) d'une colonne allant de la ligne 15 a 25.
Merci d'avance a celui qui trouvera une solution.
Bonjour,
Vous devriez mettre votre tableau sous forme de tableau structuré. Ensuite dans le code :
range("NOMTABLEAU[Candidat]")(i)correspondra à la cellule en ligne i de la colonne Candidat du tableau NOMTABLEAU.
Il est possible d'utiliser INDEX, EQUIV et toutes les fonctions de la feuille dans le code :
ligne = application.match(vcherchee, range("NOMTABLEAU[COLONNERECHERCHE]"), 0) 'equiv
valeur_renvoyee = application.index(Range("NOMTABLEAU[COLONNERETOURNE]"), ligne) 'indexCdlt,
Un grand merci.
C'est exactement ce que je cherchai !