macro toujour perdu

macro toujour perdu - VB/VBA/VBS - Programmation

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
Reply

Marsh Posté le 18-03-2005 à 17:03:18   

Reply

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.

Reply

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


---------------
aiglon74
Reply

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

Reply

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


---------------
aiglon74
Reply

Marsh Posté le 21-03-2005 à 22:09:44    

salut  
 
tout marche encore merci pour le coup de main


---------------
aiglon74
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed