VBA Excel ligne variable et colonne fixe

Résolu/Fermé
tchocollot Messages postés 6 Date d'inscription lundi 19 novembre 2007 Statut Membre Dernière intervention 8 décembre 2008 - 14 janv. 2008 à 10:11
tchocollot Messages postés 6 Date d'inscription lundi 19 novembre 2007 Statut Membre Dernière intervention 8 décembre 2008 - 15 janv. 2008 à 11:18
Bonjour,

J'ai un projet sur VBA et j'ai un besoin d'aide:
Sur mon userform je rentre une valeur (cbx_besoin) et je demande de rechercher cette valeur(avec find).
Ensuite grace à l'offset je récupère la case et j'ajoute une autre valeur (txt_nbr_tol) -3 cases à côté.

Mon problème est le suivant: la valeur recherché peut être aussi bien à en colonne J,L,N mais je veux ajouter sur la même ligne de la valeur trouvé la valeur de txt_nbr_tol dans une colonne fixe (ici H).
Quand je retrouve ma valeur, je voudrai récupérer le numéro de la ligne et ajouter txt_nbr_tol à la valeur de la colonne H.
Actuellement avec l'offset ca marche uniquement avec la colone J car j'ai fixé le -3.
On m'a dit qu'avec un row ca devrai fonctionner mais je n'ai pas réussi.
C'est pour ca que j'ai besion de votre aide.

Merci d'avance pour votre aide

Voici mon code:

Worksheets("stock").Activate
With Worksheets("stock").Range("H2:O60")
Set c = .Find(cbx_besoin.Value, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, -3).Value = c.Offset(0, -3).Value + txt_nbr_tol.Value
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
c.Select
Selection.ClearContents
c.Offset(0, -1).Select
Selection.ClearContents
MsgBox "Besoin supprimé"
End If
End With
A voir également:

2 réponses

tchocollot Messages postés 6 Date d'inscription lundi 19 novembre 2007 Statut Membre Dernière intervention 8 décembre 2008 7
15 janv. 2008 à 11:18
Bonjour!

Merci beaucoup pour votre aide! Ca fonctionne du tonnerre!

Merci beaucoup!!!!!
6
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
14 janv. 2008 à 17:03
bonjour

je suppose que c'est ta ligne : c.Offset(0, -3).Value = c.Offset(0, -3).Value + txt_nbr_tol.Value
Si tu met ceci, tu vas toujours sur la colonne H
Cells(c.Row, 8).Value = Cells(c.Row, 8).Value + txt_nbr_tol.Value

Tu modifies toujours la colonne H (8), sur la ligne de la cellule que tu as trouvé, quelle que soit la colonne du find.
0