darksnyper Nikorosif pour les intimes | Salut les hfriens!
Archi débutant sur VBA j'ai un besoin urgent pour mon travail d'utiliser une macro pour récupérer des données dans une feuille excel et les recoller dans une autre.
L'idée c'est que j'ai une base en vrac dans laquelle il me faut retrouver des références et une fois retrouvé je dois copier des valeurs de colonnes correspondantes dans une autre feuille ou se trouve ma base ordonnée.
J'ai commencé à faire un code mais j'ai des erreurs ou alors j'ai pas le résultat attendu. Le probleme c'est que je connais pas les syntaxes donc malgré quelques recherches je galere pas mal.
Quelqu'un pourrait jeter un oeil à mon fichier excel? (fichier de test tres restreint, en vrai j'ai 3000 lignes de références et une cinquantaine de colonnes à récupérer...)
Merci beaucoup
Voici le code que j'ai tapé (à moitié copié collé sur des exemples...), en attendant vous avez un site pratique pour héberger l'excel afin de le partager avec vous?
Code :
- Option Explicit
- Sub Macro2()
- '
- ' Macro2 Macro
- '
- Dim Ref As String 'Valeur à rechercher
- Dim L As Long 'Numero de la ligne résultat dans la feuille Base
- Dim i As Long 'Numéro de la ligne de recherche dans la feuille Bilan
- i = 1
- Ref = Range("A", i).Value
- While Ref <> "" 'recherche tant que cellule non vide
- Sheets("Base" ).Select 'on se met actif dans la feuille Base
- Cells.Find(What:="Ref", After:=ActiveCell, LookIn:= _
- xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
- xlNext, MatchCase:=False, SearchFormat:=False).Activate 'on recherche la valeur de la cellule dans la feuille Base
- MsgBox ActiveCell.Address 'message box de verification de la pertinence de la recherche - temporaire
- L = ActiveCell.Row 'on enregistre le numero de la ligne résultat
- Range("D" & L & ":F" & L).Select 'on selectionne les colonnes qui nous interesse dans la ligne résultat
- Selection.Copy 'on copie
- Sheets("Bilan" ).Select 'on passe dans la feuille Bilan
- Range("D", i).Select 'on se positionne dans la ligne pour laquelle on a fait la recherche, à la premiere colonne de la selection à coller
- ActiveSheet.Paste 'on colle les colonnes copiées précédemment
- Ref = Range("A", i + 1).Value 'on incrémente d'une ligne notre recherche
- Wend
- End Sub
|
Message édité par darksnyper le 09-12-2014 à 14:10:37 ---------------
http://www.facebook.com/NicolasIssalyPhotography
|