Boucle non fonctionnellle
Résolu
GermPeru
Messages postés
172
Date d'inscription
Statut
Membre
Dernière intervention
-
GermPeru Messages postés 172 Date d'inscription Statut Membre Dernière intervention -
GermPeru Messages postés 172 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous, bjr Forum,
Je voudrais asigné une valeur a une variable en fonction d'une valeur dúne cellule dans une autre feuille. Dans une feuille "HISTORIQUE_ACCES", dans ma colone B j'ai plusieurs valeur possible, et lorsque la derniere valeur est "CONEXIÓN" je voudrais asigné a ma variable Usuario la valeur de la colone E de la meme ligne.
Mon probleme est que cela ne fonctionne pas, ma boucle ne prends pas en compte la derniere valeur "CONEXIÓN" de la colone B et m assigne seulement a usuario la valeur de la derniere ligne de la colone E.
Je vous indique mon code.
Merci d'avance de voter aide, pcq la j'en ai besoin !
Je voudrais asigné une valeur a une variable en fonction d'une valeur dúne cellule dans une autre feuille. Dans une feuille "HISTORIQUE_ACCES", dans ma colone B j'ai plusieurs valeur possible, et lorsque la derniere valeur est "CONEXIÓN" je voudrais asigné a ma variable Usuario la valeur de la colone E de la meme ligne.
Mon probleme est que cela ne fonctionne pas, ma boucle ne prends pas en compte la derniere valeur "CONEXIÓN" de la colone B et m assigne seulement a usuario la valeur de la derniere ligne de la colone E.
Je vous indique mon code.
Dim k As Integer DerniereLigneHistorique = Sheets("HISTORIQUE_ACCES").Range("B4").End(xlDown).Row Acceso = Sheets("HISTORIQUE_ACCES").Range("B4").End(xlDown).Value If Acceso <> "CONEXIÓN" Then For k = DerniereLigneHistorique To 4 Step -1 If Sheets("HISTORIQUE_ACCES").Cells(2, k) = "CONEXIÓN" Then Usuario = Sheets("HISTORIQUE_ACCES").Cells(2, k).Offset(0, 3).Value End If Next k Else Usuario = Sheets("HISTORIQUE_ACCES").Range("B4").End(xlDown).Offset(0, 3).Value End If
Merci d'avance de voter aide, pcq la j'en ai besoin !
A voir également:
- Boucle non fonctionnellle
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
Ensuite vous me dites que je boucle sur des colones, je ne suis pas sur de moi pourtant je boucle avec DerniereLigneHistorique qui est definit en .row; donc je pensais boucler a partir de ma derniere ligne puis remonter... ou alors je dois mettre un .count; et non .row ou les 2... un peu perdu
Du coup je voudrais que lorsque ds ma colone B ma derniere valeur est "CONEXIÓN" asigné a usuario la valeur de ma colone E de la meme ligne.
Jéspere avoir était plus clair dans mon pb.
Merci du temps consacré f894009 :)
k dans boucle pour cells(2,k) c'est la colonne pas la ligne
Je n'avez pas saisi a ma premiere lecture.
Mon pb apres etait qu'il mindiquait en usuario la premiere valeur de la colone et non la derniere, jái donc interverti les donnees de ma boucle.
J´ai donc une question est ce qu'il est possible de bloquer le code lorsqu´il trouve la valeur indiqué et nnon qu´il balaye toute la colone, je pense a ca pour optimiser la lecture du code au cas ou le code fasse 1000 lignes.
Dans tous les cas merci f894009
Si une seule occurrence de "CONEXION" en colonne 2 de la feuille HISTORIQUE_ACCES, utilise la méthode find plutôt que de boucler sur toutes les lignes.
EDIT : sinon, pour ta question, il convient d'utiliser Exit For pour sortir d'une boucle :
ou Exit Sub pour quitter une procédure :
Dans mon cas il y a plusieurs fois le mot "CONEXIÓN", mais je voulais juste le dernier de la colone, donc si je pars de la fin de la colone puis si je remonte en utilisant exit for ca devrait fonctionner. J essaie de suite!!
Merci pour ces precieuses informations qui aide vachement a la comprehension de la logique pour créer un code!