Traduction VBA

Résolu/Fermé
mimilendo35 Messages postés 8 Date d'inscription mercredi 27 avril 2016 Statut Membre Dernière intervention 10 mai 2016 - 27 avril 2016 à 13:59
mimilendo35 Messages postés 8 Date d'inscription mercredi 27 avril 2016 Statut Membre Dernière intervention 10 mai 2016 - 28 avril 2016 à 10:09
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
27 avril 2016 à 14:06
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
mimilendo35 Messages postés 8 Date d'inscription mercredi 27 avril 2016 Statut Membre Dernière intervention 10 mai 2016
27 avril 2016 à 14:09
Bonjour pijaku,

Merci pour ta réponse rapide ! :)
0
mimilendo35 Messages postés 8 Date d'inscription mercredi 27 avril 2016 Statut Membre Dernière intervention 10 mai 2016
27 avril 2016 à 15:30
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751 > mimilendo35 Messages postés 8 Date d'inscription mercredi 27 avril 2016 Statut Membre Dernière intervention 10 mai 2016
27 avril 2016 à 15:42
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
mimilendo35 Messages postés 8 Date d'inscription mercredi 27 avril 2016 Statut Membre Dernière intervention 10 mai 2016 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
28 avril 2016 à 10:09
Merci encore ! :)
0