liovba38
Messages postés2Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 mai 2007
-
24 mai 2007 à 16:27
liovba38
Messages postés2Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 mai 2007
-
25 mai 2007 à 08:40
Bonjour,
Voilà je galère depuis bien 1 semaines avec une foutu boucle.
Je suis entrain de réaliser un base de données logistique pour mon boulot et je n'arrive pas à faire une boucle.
Alors j'ai desoin d'une macro qui recupère une valeur dans une case X de la sheet 1 et après elle lance un recherche sur la sheet 2 en comparant la variable X avec toutes les cellules de la colonne A et à chaque fois que ceci est vrai elle copie toute la ligne dans un tableau sur une autre sheet (et bien entendu à la copie suivante, elle recopie à la ligne du dessous et ....)
Et ca je n'y arrive pas ca parait simple mais je bute.
La je viens de toutes effacer pour recommencer.
Donc si quelqu'un à la solution c'est parfait! meme génial et si quelqu'un à des exemples.
nagattaque
Messages postés230Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention 5 juin 2007 24 mai 2007 à 17:36
Quelle idée de vouloir utiliser Excel qd Access pourrait faire ça très bien !!! Bon j'imagine que si tu le fais sous Excel c'est que tu n'as pas trop le choix.... donc je vais t'aider. Si j'ai bien compris:
- Tu as un critère de recherche dans ta feuille Sheet1
- Tu as ta table dans Sheet 2
- Tu veux toutes les lignes de sheet 2 dans sheet 3 correspondant à la requete "Si cellule A d'une ligne de sheet 2 = critere de sheet 1" alors copier la ligne dans sheet 3
Ton critère est dans une cellule bien précise j'imagine, il faudrait les coordonées, et j'imagine aussi que tu lances la macro depuis la sheet1
Ce que je propose, c'est déja de renommer des feuilles en
- sheet 1---> Recherche
- Sheet 2 ---> Data
- Sheet 3 ---> Resultats
Ensuite un bout de code pour t'aider, j'ai pris une méthode simple, celle du filtre, y a en d'autre si elle ne te convient pas, mais ca sera bcp plus lourd. Je pars des principes suivants:
- ta feuille de résultat est vide
- tu n'as pas de colonne vide entre des colonnes pleines ds la feuille data
- tu n'as pas de ligne vide entre des lignes pleines ds la feuille data
Sub TEST()
Sheets("data").Select
'Selection de tes colonnes dans lesqueslles tu dois faire ta recherche
Columns("A:C").Select
'Application des filtres automatiques
Selection.AutoFilter
'Critère de recherche pour ton filtre, ds ce cas la cellule B1 de la feuille "recherche"
Selection.AutoFilter Field:=1, Criteria1:=Sheets("recherche").Cells(1, 2)
'Copie des résultats du filtres
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
'Collage spécial en valeur pour enlever les formules/format si jamais tu en as
Sheets("resultats").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
'Réinitialisation des filtres de la feuille "data"
Sheets("data").Select
Selection.AutoFilter Field:=1
Range("A1").Select
Sheets("resultats").Select
Application.CutCopyMode = False
End Sub
J'espere que ça répond à ta question et surtout que ça va t'aider !