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