Problème de macro sous excel

liovba38 Messages postés 2 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 mai 2007 - 24 mai 2007 à 16:27
liovba38 Messages postés 2 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 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.


MErci d'avance


Lionel

2 réponses

nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Derniè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 !

Nag
0
liovba38 Messages postés 2 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 mai 2007
25 mai 2007 à 08:40
Merci Nag,
Mais ca bug encore à un endroit.

Dis moi tu n'aurais pas un mail que je puisse t'envoyer la macro et le fichier excel.

Merci
0