Bonjour à tous et à toutes, je débute en macro excel et j'aurai besoin de vos conseils éclairés en la matière. Je vais essayer d'être le plus clair possible pour ne pas vous faire perdre votre temps.
Voila j'ai un fichier source qui regroupe des informations sur la toxicité de différentes molécules chimiques (oui c'est pour sauver les dauphins c'est une bonne action).
-> http://animechange.free.fr/source.txt
Chaque groupement d'information est classé par molécule et commence par
CAS No : Numero de la Molécule
Puis une suite d'information comprise sur des lignes successives
Ce que je cherche c'est insérer cette base dans access donc il faut que je réorganise les informations en colonne. Ce qui m’intéresse c'est uniquement les lignes qui contiennent l'information End Pt : Chv
Par exemple si on prends les premières molécules dans ma source.txt le rendu que j'aimerai obtenir c'est
CAS | Methode | Organisme | Concentration |
000083-46-5 | Neutral Organics | Fish | 1.04e-005
000083-46-5 | Neutral Organics | Daphnid | 3.7e-005
000083-46-5 | Neutral Organics | Green Algae | 0.000925
000083-46-5 | Neutral Organics | Fish (SW) | 0.000704
000083-46-5 | Neutral Organics | Mysid (SW) | 2.28e-009
000083-56-7 | Phenols, Poly | Fish | 3.436
000083-56-7 | Phenols, Poly | Daphnid | 17.165
000083-56-7 | Phenols, Poly | Green Algae | 0.394
000083-56-7 | Neutral Organic SAR | Fish | 8.547
000083-56-7 | Neutral Organic SAR | Daphnid | 5.091
000083-56-7 | Neutral Organic SAR | Green Algae | 10.910
.... etc
Et ainsi de suite, sachant que le nombre de modèle et aléatoire, que le nombre de lignes contenant Chv est aléatoire comme vous pouvez le voir dans le fichier source.
J'ai commencé à bricoler une macro
Mais pour l'instant j'ai juste réussi à planter excel. Si vous avez une idée de comment procéder ou un bon tuto ciblé à me conseiller sachant que c'est la première fois que je code (je comprends les fonctions logiques mais j'ai n'ai aucune connaissance du langage).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim i As Long For i = 1 To Range("A" & Rows.Count).End(xlUp).Row If Range("A" & i) <> 0 Then Cells.Find(What:="CAS No : ", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate Selection.Copy Range("F" & i).Select ActiveSheet.Paste End If Next i
Je remercie par avance les programmeurs et les programmeuses (il y en a surement) qui prendront sur leurs temps pour m'aider. (si je n'ai pas été assez clair n'hésitez pas à me demander des précisions)
Cordialement Folken
Partager