Incrémenter un compteur, par Bouton, pour l'affichage indexé de valeurs

Bonjour,

je joins un fichier exemple.

En appuyant sur le bouton " Afficher les prospects", je souhaite que :

B2 Fiche Abonné prenne la valeur de la valeur Dligne Gestion des abonnés de la première ligne qui possède un 1 dans la colonne AG.

Puis ainsi de suite à chaque appuis au prochain "1" dans AG, je copie la valeur Dligne de la ligne correspondante en B2 Fiche Abonné

Exemple par rapport au fichier joint : si j'appuis sur " Afficher les prospects"

B2 (Fiche abonné)=D3 (Gestion des abonnés) car il y a un 1 dans AG3 (Gestion des abonnés)

Puis incrémenter au nouvel appuis sur le bouton, de tel sorte que :

B2 (Fiche abonné)=D5 (Gestion des abonnés) car il y a un 1 dans AG5 (Gestion des abonnés)

Nouvel appuis

B2(Fiche abonné)=D10(Gestion des abonnés) car il y a un 1 dans AG10 (Gestion des abonnés)

Pouvez vous m'aider ? Auriez vous des pistes, une solution ?

Merci beaucoup d'avance

Bonjour,

Je te propose une solution dont le code est le suivant:

Private Sub CommandButton3_Click()
Dim ligFin, ligAbo

With Sheets("Gestion des abonnés")
    ligFin = .Range("a" & Rows.Count).End(xlUp).Row
    ligAbo = .Range("d1", "d" & ligFin).Find(Range("b2"), lookat:=xlWhole).Row
    If Not .Range("ag1", "ag" & ligFin).Find("1", .Range("ag" & ligAbo), lookat:=xlWhole) Is Nothing Then
        ligAbo = .Range("ag1", "ag" & ligFin).Find("1", .Range("ag" & ligAbo), lookat:=xlWhole).Row
        Range("b2") = .Range("d" & ligAbo)
    End If
End With
End Sub

Voici le fichier modifié qui va avec:

Bonjour,

merci vraiment beaucoup, ça fonctionne à la perfection.

Exactement ce que je souhaite. Et ça boucle en plus.

Encore un grand merci "Ausecour", ainsi qu'au forum en général et tout ces anonymes qui donnent généreusement de leur temps.

Bravo

Thierry

Re,

Oui par chance ça boucle, c'est la particularité de la fonction Find, tu lui donnes une plage sur laquelle chercher, une cellule de départ, et paf ça cherche sur toute la plage en partant soit vers le bas soit vers le haut, du coup ça permet de boucler parce que si tu arrives à la dernière ligne et que tu n'as pas encore cherché sur les premières, ça ira chercher dessus

(Je ne suis pas sûr d'être très clair, une animation serait tellement meilleure pour comprendre )

Bonne journée merci d'avoir passé le sujet en résolu

Bonjour à tous,

je reviens sur mon sujet ici car je souhaite ajouter une condition de date à mon code VB.

A savoir déjà si c'est possible depuis la solution de Ausecour

Je m’explique,

pour rappel, quand je clic sur le bouton "afficher les prospects " dans l'onglet Fiche Abonné, je visualise les clients qui possèdent un 1 dans la conne AG de l'onglet Gestion des abonnés. Au fur et à mesure que je clic je passe d'un client à relancer à un autre.

Est-il possible d'ajouter comme condition, une date de rappel, en commençant par la plus proche. Cette date est fixée dans Gestion des abonnés colonne AM (Relance).

De cette façon, en appuyant sur le bp " afficher les prospets " je visualise d'abord le client ayant :

  • la date future la plus proche jusqu’à la date future la plus éloignée
  • puis les autres clients ensuite qui n'ont pas de date de relance ou qui ont une date de relance dépassé par la date du jour (sans priorité)

Le code de Ausecour ci dessous et je joins mon fichier test.

Est-ce que quelqu'un peu m'aider ou me donner des pistes ?

Private Sub CommandButton6_Click()

End Sub

Rechercher des sujets similaires à "incrementer compteur bouton affichage indexe valeurs"