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

Macros et VBA Excel Discussion :

Problème boucle For et interface paramètrage macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut Problème boucle For et interface paramètrage macro
    Bonjour,

    Débutant en VBA.
    J'ai une question concernant le le code de ma macro ci dessous.

    Pourquoi est-ce que, quand j'arrive au nombre de lignes du bordereau, la macro continue de renvoyer la conversion de la cellule de la colonne B alors que moi je voudrais que quand on a i = le nombre de lignes du bordereau, et qu'il trouve un élément de "cible", il s'arrête. Et je pensais l'avoir exprimé avec le "exit for" mais ça ne fonctionne pas.

    De plus, j'aimerais créer une interface qui permette de paramétrer ma macro. C'est-à-dire que je voudrais qu'il y ait une petite fenêtre qui s'affiche au lancement de la ma macro, qui me demande de rentrer le nom de la feuille qui contient le bordereau, la plage de données avec laquelle je veux travailler, la lettre ou le numéro de la colonne qui contient les numéros de prix, idem pour pour le libellé et la colonne du prix.

    Pouvez vous m'aider svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub macrolieuconvertisseur()
     
    Dim clb As Integer
     
    Dim bordereau As Range
     
    Dim cible As String
     
    Set bordereau = Worksheets("35G BPU").Range("A1:C1500")
     
    cnpb = bordereau.Columns("A").Column
    clb = bordereau.Columns("B").Column
    cpb = bordereau.Columns("C").Column
     
    cible = "L'unité :,L' unité :,L'Unité :,L' Unité :,L'heure :,L' heure :,Le mètre :,L'ensemble :,L' ensemble :,Le mètre linéaire :"
     
    For numligne = 1 To bordereau.Rows.Count
     
        With bordereau
     
            If .Cells(numligne, cnpb) <> 0 Then
     
                For i = 1 To 20
     
                    If InStr(cible, Cells(numligne + i, clb)) Then
     
                        Cells(numligne + i, clb).Value = Cells(numligne + i, clb) & CONVERT(Cells(numligne + i, cpb))
     
                    Exit For
     
                    End If
     
                 Next
     
            End If
     
        End With
     
    Next
     
    End Sub

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Pourquoi est-ce que, quand j'arrive au nombre de lignes du bordereau, la macro continue de renvoyer la conversion de la cellule de la colonne B alors que moi je voudrais que quand on a i = le nombre de lignes du bordereau, et qu'il trouve un élément de "cible", il s'arrête. Et je pensais l'avoir exprimé avec le "exit for" mais ça ne fonctionne pas.
    Avec ton code tu sors de la première boucle mais pas de la deuxième !
    Tu peux utiliser un bouléen par exemple pour sortir


    De plus, j'aimerais créer une interface qui permette de paramétrer ma macro. C'est-à-dire que je voudrais qu'il y ait une petite fenêtre qui s'affiche au lancement de la ma macro, qui me demande de rentrer le nom de la feuille qui contient le bordereau, la plage de données avec laquelle je veux travailler, la lettre ou le numéro de la colonne qui contient les numéros de prix, idem pour pour le libellé et la colonne du prix.
    Pour cela il te faut utiliser un userform, un bon tutoriel ici

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Ok le "Exit For" fonctionne en fait j'ai l'impression. Il doit y avoir quelque chose que j'ai mal formulé dans le code.

    Pour le 2e prb, J'ai utilisé des inputbox.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème boucle for
    Par revsys dans le forum Delphi
    Réponses: 20
    Dernier message: 24/05/2007, 15h50
  2. Problème boucle for
    Par rouliane dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2006, 14h37
  3. [VBA-E, Débutant] Problème Boucle for
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/08/2006, 12h30
  4. [Débutant] Problème boucle for
    Par toniooooo dans le forum Langage
    Réponses: 10
    Dernier message: 18/04/2006, 14h42
  5. [FLASH 8] Problème Boucle For
    Par Begood dans le forum Flash
    Réponses: 6
    Dernier message: 21/03/2006, 11h36

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