IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Boucle Infinie


Sujet :

VBA

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Boucle Infinie
    Bonjour à tous,

    Dans le but de récupérer un numéro de ligne absolu dans un tableau via une valeur de cellule et n'étant pas à l'aise avec les fonctions Index et Equiv j'essaye de contourner le problème avec une boucle, toutefois lorsque j’exécute mon programme il semblerait que je ne sorte jamais de ma boucle, j'ai donc essayer de rajouter des .value mais malheuresement cela me génère des erreus de type Objet Requis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Dim Valeur as String
    Dim Source As Range                                   
    Dim Search As Cell
    Dim Result As String
    With Workbooks(FileSource).Sheets(SheetsSource)
    Set Search = Cells(1, Colonne)
    Set Result = Search.Value
    While Result <> Valeur Or Result <> ""
    Search = Search.Offset(1, 0)
    Wend
    End With

    J'aimerais donc s'il vous plait de l'aide pour m'aider a terminé cette portion de code

    Cordialement

    Depsi.

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Commence s'il te plait par ouvrir ton aide VBA à la rubrique Set, instruction et la lire.
    Tu y découvriras que cette instruction "attribue une référence d'objet"
    Je crains fort que tout le reste de ton code ne mette en exergue trop de méconnaissances fondamentales.
    Tu ferais sans soute bien de commencer par cela : apprendre les fondements eux-mêmes.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour, bonjour !

    Qui plus est il est totalement inutile de créer une variable objet pour lire la valeur d'une cellule
    car elle peut déjà être directement lue juste en respectant le modèle objet d'Excel !

    Ce sujet n'ayant rien à faire dans du Général VBA car justement il est question du modèle objet d'Excel …

    Et que vaut les variables Valeur et Colonne, où sont-elles donc alimentées ?‼

    Ce genre de boucle peut s'avérer plus chronophage qu'INDEX et EQUIV !

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    J'ai oublié de préciser que je la passe en parametre de ma fonction elle correspond a une chaine de caractère.

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Merci de ne pas citer l'intégralité du post juste précédent, cela nuit à la lisibilité de cette discussion ‼

    Comme tu l'as certainement compris nous ne sommes pas des cartomanciens ni des devins :
    une présentation claire & exhaustive du besoin accompagnée du code complet entrepris n'est donc pas du luxe !

    Indiquer aussi le nombre maximal de lignes car encore une fois
    INDEX et EQUIV pourraient très bien répondre au besoin en limitant le nombre de lignes de code et le temps d'exécution !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    J'ai bien compris malheuresement je n'arrive pas à comprendre ces fonctions enfin surtout comment les utilisés dans mon cas. Cette portion de code fonctionne en complémentarité d'une autre, et apparement d'après ce que j'ai compris la fonction équiv renvoit un numéro de ligne relatif au nombre de ligne de la plage sélectionner et non pas au numéro de la ligne du classeur.

    Cordialement

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Déjà sans savoir précisément ce dont il est question, difficile d'aiguiller vers la solution la mieux adaptée !

    Peut-être via la méthode Find à consulter dans l'aide VBA interne …

    Pour rappel une boucle infinie est juste une erreur de logique ou / et de contexte !

    _________________________________________________________________________________________________________
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. [Boucle Infinie] pour un menu
    Par NhyMbuS dans le forum C++
    Réponses: 5
    Dernier message: 20/07/2005, 09h14
  2. symptome de la boucle infinie dans une requete
    Par ouam81 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 27/05/2005, 12h10
  3. Réponses: 15
    Dernier message: 24/05/2005, 08h34
  4. [Socket] Pb de boucle infinie
    Par Myogtha dans le forum Entrée/Sortie
    Réponses: 12
    Dernier message: 10/06/2004, 14h10
  5. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo