Recherche d'une valeur dans excel

Résolu
bipbip059
Messages postés
16
Date d'inscription
dimanche 10 septembre 2006
Statut
Membre
Dernière intervention
1 mars 2009
- 24 sept. 2006 à 00:00
bipbip059
Messages postés
16
Date d'inscription
dimanche 10 septembre 2006
Statut
Membre
Dernière intervention
1 mars 2009
- 25 sept. 2006 à 21:03
bonsoir à tous

Sur mon userform j'ai placé quatre textbox 1,  2, 3, et 4 la valeur de la textbox 1 est transférée sur la feuille excel colonne A, la valeur de textbox 2 colonne G, la valeur de textbox 3 colonne B et la valeur de textbox 4 colonne C- même ligne.
J'aimerai qu'à chaque nouvelles valeurs rentrées on compare la valeur de textbox 1 avec la colonne A
-si la valeur existe on aditionne textbox 2 avec la valeur de la colonne G correspondante.Quant aux autres valeurs  elles sont transférées dans leur colonne même  ligne
-sinon on transfére le tout à la ligne suivante
(ex : valeur textbox 1 repérée en A(n) donc addition de textbox 2 et G(n))

Mes débuts en VBA sont laborieux.je peine

merci d'avance <!-- / message --><!-- edit note -->

6 réponses

cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
24 sept. 2006 à 20:57
Tu pourrais alors modifier la ligne suivante

Set Recherche = Sheets("MaFeuille").Columns("A:A").Find(CLng(Valeur))


et changer MaFeuille par le nom de la feuille dans laquelle tu fais la recherche, bien sûr...

MPi
3
bipbip059
Messages postés
16
Date d'inscription
dimanche 10 septembre 2006
Statut
Membre
Dernière intervention
1 mars 2009

24 sept. 2006 à 21:47
salut  super le conseil que tu m'as donné j'ai d'abord essayé avec :
Range("G" & recherche.address.row) = _
Range("G" & recherche.address.row)+textbox2
 là ça n'a pas marché puis j'ai essayé l'autre et là impeccable

je te donne une partie du programa que j'ai fais dis moi ce que tu en penses?

Et encore merci pour ce conseil.
Je n'aurais jamais trouvé je suis trop limité.

Dim M, recherche
    Dim L As Integer
    L = Sheets("Feuil1").Range("a65536").End(xlUp).Row + 1
    M = TextBox1
    Set recherche = Sheets("Feuil1").Columns("A:A").Find(CLng(M))
    If Not recherche Is Nothing Then  'trouvé
    Range(recherche.Address).Offset(0, 6) = _
    Range(recherche.Address).Offset(0, 6) + TextBox2


 Else
   
Sheets("Feuil1").Range("a" & L) = TextBox1.Value
Sheets("Feuil1").Range("b" & L) = TextBox2.Value
Sheets("Feuil1").Range("c" & L) = ComboBox1.Value
Sheets("Feuil1").Range("d" & L) = TextBox5.Value
Sheets("Feuil1").Range("g" & L) = TextBox4.Value


 End If
    Unload Userform1
3
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
24 sept. 2006 à 16:58
Quel est le genre de valeur de la colonne A (ou textbox1) ?

Du texte ? Un code numérique précis ?


J'irais de la façon suivante


Dim Valeur, Recherche

Valeur = Textbox1

Set Recherche = Sheets("MaFeuille").Columns("A:A").Find(Valeur)

If Not Recherche is Nothing then  'trouvé

    Range("G" & recherche.address.row) = _

        Range("G" & recherche.address.row)+textbox2

'    ou encore

'    Range(recherche.address).Offset(0,6) = _

'        Range(recherche.address).Offset(0,6) + textbox2

else   ' on inscrit une nouvelle ligne

'    Chercher la première ligne vide

'    Inscrire les données

endif

MPi
0
bipbip059
Messages postés
16
Date d'inscription
dimanche 10 septembre 2006
Statut
Membre
Dernière intervention
1 mars 2009

24 sept. 2006 à 18:17
bonsoir


dans textbox 1 ce sont des valeurs numériques seule textbox 4 est du texte


 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
24 sept. 2006 à 23:49
C'est la façon dont j'aurais procédé.

J'aurais mis des noms plus significatifs aux variables L et M, mais bon, tant que tu te comprends...


Pour le combobox, j'opterais pour ComboBox1.Text, plutôt que ComboBox1.Value
Les deux méthodes fonctionnent peut-être aussi bien, mais c'est une question d'habitude...


Ah oui !

et change L as Integer pour L as Long

Quand on met une variable pour récupérer un nombre de lignes, il est
toujours préférable d'y aller avec Long au cas où tu aurais plus de
32767 lignes à lire. C'est une bonne habitude à prendre.

MPi
0
bipbip059
Messages postés
16
Date d'inscription
dimanche 10 septembre 2006
Statut
Membre
Dernière intervention
1 mars 2009

25 sept. 2006 à 21:03
Merci pour tes coneils, j'ai rectifié.
Bonne soirée et encore merci
0