Traduction VBA

Résolu
mimilendo35 Messages postés 8 Statut Membre -  
mimilendo35 Messages postés 8 Statut Membre -
Bonjour tout le monde,
Voilà j'ai commencé à traduire le VBA d'une amie mais je sèche pour ce qui est de :
lig = c.Row
T.Rows(lig & ":" & lig).ClearContents

et :
lig = T.Range("A" & Rows.Count).End(xlUp)(2).Row

Merci d'avance !


1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    c = Range ou on a trouvé E2.
    Donc c.Row est la ligne ou on a trouvé E2
     lig = c.Row
    => stocke le n° de ligne ou on a trouvé E2

    T.Rows(lig & ":" & lig).ClearContents
    => Efface les données de cette ligne

    et :
    lig = T.Range("A" & Rows.Count).End(xlUp)(2).Row
    =>lig représente alors la première ligne vide de la colonne A de la feuille T
    1
    1. mimilendo35 Messages postés 8 Statut Membre
       
      Bonjour pijaku,

      Merci pour ta réponse rapide ! :)
      0
    2. mimilendo35 Messages postés 8 Statut Membre
       
      Re pijaku,

      Je suis au bout du VBA, il ne me reste que les dernières lignes... Peux-tu m'aider ? :)

      Sub RESULT()

      With T 'feuille Tableau

      Set c = .Range("A:A").Find([E2], lookat:=xlWhole) 'définit et cherche le n° lot inscrit en E2
      If Not c Is Nothing Then 'si on trouve le n° lot
      ln = c.Row 'stocke le n° de ligne où on a trouvé E2
      Else
      Exit Sub
      End If

      For Each c In [D11:D26] 'pour chaque n° lot
      col = Application.Match(c, .Rows(1), 0)
      If IsNumeric(col) Then .Cells(ln, col) = c(1, 2)
      Next
      .Range("J" & ln & ":ADX" & ln).Replace what:="", replacement:="<LOQ", lookat:=xlWhole

      End With
      End Sub
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > mimilendo35 Messages postés 8 Statut Membre
         
        col = Application.Match(c, .Rows(1), 0)
        Application.MAtch est l'équivalant en VBA de la fonction Excel Index. On va stocker donc ici le n° de la colonne correspondant à la valeur recherchée, c. Soit le contenu de : D11, D12, D13,...,D26
        If IsNumeric(col) Then .Cells(ln, col) = c(1, 2) 
        c(1, 2) = contenu de la cellule voisine de C (donc E11, E12 etc)
        La ligne complète signifie donc : Si col est numérique alors la cellule Ligne ln, colonne col est égale à E11, E12 etc...
        Next 
        suivant
        .Range("J" & ln & ":ADX" & ln).Replace what:="", replacement:="<LOQ", lookat:=xlWhole 
        Replace est l'équivalant de Ctrl+H (rechercher/remplacer) Ici on remplace rien : "" par "<LOQ" dans la plage J ligne:ADX ligne
        0
      2. mimilendo35 Messages postés 8 Statut Membre > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci encore ! :)
        0