macro toujour perdu - VB/VBA/VBS - Programmation
Marsh Posté le 19-03-2005 à 11:10:25
Tu mets sur ta feuille de saisie dans une cellule (par exemple B1 et si ta saisie est en A1 
=EQUIV(A1;[Classeur1]Feuil1!$A:$A;1) 
 
ensuite tu fais une petite macro (dis moi si tu ne sais pas) qui vient mettre dans la premiere colonne vide à droite de ta base un 1 pour la ligne dont le numéro correspond au résultat de la cellule B1  , tu fais un tri sans la ligne de titre et tu effaces le 1. 
Marsh Posté le 19-03-2005 à 22:05:43
salut kilimanjaro 
 
merci pour ta reponse 
 
probleme pour le debut de la macro 
ensuite tu fais une petite macro (dis moi si tu ne sais pas) qui vient mettre dans la premiere colonne vide à droite de ta base un 1 pour la ligne dont le numéro correspond au résultat de la cellule B1   
 
la suite ok 
tu fais un tri sans la ligne de titre et tu effaces le 1.  
 
un petit coup de main ca serait sympa 
Marsh Posté le 20-03-2005 à 06:16:52
    la_ligne = Application.Match(ThisWorkbook.Sheets("SAISIE" ).Range("A1" ).Value, ThisWorkbook.Sheets("BASE" ).Range("A:A" ), 0) 
    If IsError(la_ligne) Then MsgBox ("Saisie pas ok" ): Exit Sub 
    Sheets("base" ).Cells(la_ligne, Range("IV1" ).End(xlToLeft).Column + 1) = 1 
    Sheets("base" ).Range("A1" ).CurrentRegion.Sort Key1:=Range(Sheets("base" ).Cells(1, Range("IV1" ).End(xlToLeft).Column + 1).Address), Order1:=xlDescending, Header:=xlYes, _ 
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 
    Sheets("base" ).Cells(2, Range("IV1" ).End(xlToLeft).Column + 1).ClearContents 
Marsh Posté le 20-03-2005 à 19:25:22
salut et merci pour ton aide precieuse 
 
je debute en macro (ca se voir) 
si tu a un site a me conseille ou un livre 
tout seul c'est toujour pas facile  
 
voila ce que j'ai compris 
Sub Macro1() 
 
 
 la_ligne = Application.Match(ThisWorkbook.Sheets("SAISIE" ).Range("A1" ).Value,  
 
ThisWorkbook.Sheets("BASE" ).Range("A:A" ), 0) 
 
 
si je lit bien cette ligne me mets une MsgBox si le mot saisie et eronne en fait moi j'ai un 1 en resultat 
dans la cellule ou j'ai mis ta formule 
    If IsError(la_ligne) Then MsgBox ("Saisie pas ok" ): Exit Sub 
 
 
 
 
    Sheets("base" ).Cells(la_ligne, Range("IV1" ).End(xlToLeft).Column + 1) = 1 
 
 
LA LIGNE SUIVANTE BLOQUE alors j'ai mis un ' devant ca marche  
mais j'aurrais aime comprendre cette ligne 
 
'  Sheets("base" ).Range("A1" ).CurrentRegion.Sort Key1:=Range(Sheets("base" ).Cells(1,  
 
Range("IV1" ).End(xlToLeft).Column + 1).Address), Order1:=xlDescending, Header:=xlYes, _ 
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 
 
 
    Sheets("base" ).Cells(2, Range("IV1" ).End(xlToLeft).Column + 1).ClearContents 
 
ma bidouille 
     
    Application.ScreenUpdating = False 
    Sheets("base" ).Select 
    Range("a1" ).Select 
     
    'TRIE ET EFFACE 
     Range("A3:E13" ).Select 
    Selection.Sort Key1:=Range("C3" ), Order1:=xlAscending, Key2:=Range("E3" ) _ 
        , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ 
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _ 
        :=xlSortNormal 
    Rows("3:3" ).Select 
    Selection.Delete Shift:=xlUp 
    Range("A1" ).Select 
Sheets("saisie" ).Activate 
Range("a1" ).Select 
End Sub 
Marsh Posté le 21-03-2005 à 22:09:44
salut  
 
tout marche encore merci pour le coup de main
Marsh Posté le 18-03-2005 à 17:03:18
salut
pas toujours facile d'expliquer des problemes
voila en feuille accueil en cellule A1 j'ai un nombre x
en feuille base de donnee j'ai une liste de 120 lignes
en colonne A de base de donnee les nombres que je pourrais taper en feuille acceuil
quand je tape un de ces nombres en feuille acceuil cellule A1
je voudrais que la ligne qui corespond a ce nombre passe en haut de feuille base de donnee
comment faire perdu de chez perdu
---------------
aiglon74
---------------
aiglon74