Excel Macro- Numéro de ligne

Bonjour tout le monde,

Voilà mon petit problème.

Je travail sur un fichier1.xls que je peux modifier, et sur un fichier2.xls qui doit rester le même.
Sur le fichier1, dans la cellule D4, je dois choisir un pays (via une liste).
Dans le fichier2, j'ai un tableau avec tous les pays de la liste dans la colonne A1, mais écrit de cette facon :
Allemagne, Allemagne, Allemagne, France, France, France, ....

Je voudrais donc que dans ma cellule A1 du fichier1, s'affiche le numéro de la ligne de la première fois qu'on tombe sur le pays choisit dans la cellule D4.

Merci beaucoup

j'ai déjà essayé avec le code suivant :

    
    
    Windows("Fichier1.xls").Activate
    Country = Range("D3")

    Windows("Fichier2.xls").Activate
    Sheets("input").Activate
    Cells.Find(what:=Country).Activate
    RowCountry = ActiveCell.Row

    Windows("Fichier1.xls").Activate
    Range("A1").Select
    ActiveCell.Value = RowCountry


Mais ca me met 0 dans A1...

Encore Merci

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Je pense avoir trouvé, la fonction match() revoie la ligne d'une valeur contenue dans une colonne.

    donc j'ai ceci dans ma macro :

    RowCountry = Application.WorksheetFunction.Match(Country,Range("A1:A1000"),0)


    Mais je sais pas encore si il prend toujours la première valeur trouvé...
    1. ' pour éviter les erreurs...

      Windows("Fichier1.xls").Activate
      Sheets("Nom_de_laFeuille").select ' Ici tu adaptes
      Country = Range("D3")

      Windows("Fichier2.xls").Activate
      Sheets("input").Activate
      range("A1").select ' j'ai ajouté ça pour faire la recherche à partir du début
      Cells.Find(what:=Country).Activate
      RowCountry = ActiveCell.Row
      ' ici pour controler
      s = MsgBox("Ligne N° : " & owCountry, vbOKOnly, "controle")
      Windows("Fichier1.xls").Activate
      Range("A1").Select
      ActiveCell.Value = RowCountry


      parceque moi je n'ai pas eu d'erreur et j'ai eu le bon numero de ligne