Option Explicit
Sub F_molecule()
'On doit déclarer les variables utilisées dans la procédure
'Range ==> cellule ou plage de cellules
'Long ==> numérique Nombre entier de - 2'147'483'648 à 2'147'483'647
'Integer ==>numérique Nombre entier de -32'768 à 32'767 (si tu es sûr que tu n'auras pas plus de 32 767 lignes)
Dim plg As Range, DerLig As Long, DerCol As Long, plgMol As Range
Dim Cel As Range, Air As Range, cl As Long
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With Sheets("information") 'signifie qu'on travaille avec la feuille "information"
'étant donné que la derniere ligne non vide des colonnes n'est pas la même
'on recherche la derniere ligne non vide de la plage courante à la cellule A1
'avec la igne de code ci-dessous
DerLig = .Range("A1").CurrentRegion.Find("*", , , , xlByRows, xlPrevious).Row
'on récupère la dernière colonne non vide de la ligne 1 (ligne de code ci-dessous)
DerCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
'on définit la plage "plg" où l'on va rechercher les molécules
Set plg = .Range(.Cells(1, 2), .Cells(DerLig, DerCol))
End With 'fin de travail avec la feuille "information
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With Sheets("classement")
'on définit la plage "plgMol"
Set plgMol = .Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
End With
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'boucle for each sur toutes les cellules de la plage plgMol
For Each Cel In plgMol
If Cel <> "" Then 'si la cellule concernée n'est pas vide (juste par précaution qu'il y ait ces cellues vides)
'on définit la variable Air (cellule) que l'on veut trouver dans plage plg
Set Air = plg.Find(Cel, LookAt:=xlWhole)
If Not Air Is Nothing Then 'si on la trouve
cl = Air.Column 'on récupère le numero de colonne
'on repporte dans la cellule décaler d'une colonne soit colonne B
Cel.Offset(0, 1) = Sheets("information").Cells(1, cl).Value
End If
End If
Next Cel
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'vidage des variables
Set plgMol = Nothing
Set Air = Nothing
Set plg = Nothing
End Sub