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 :

j'ai une erreur Next sans For


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
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut j'ai une erreur Next sans For
    Bonjour,
    je ne trouve pas d'ou ça vient. Un p'tit coup de main ?

    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
    Sub prevision()
     
    Dim r As Integer
    Dim c As Integer
    Dim i As Integer
    Dim m As Integer
     
    i = 2
     
    Plage = Sheets("unités").Range("C5:G12")
     
     For Each Cell In Plage
        If (IsEmpty(Cell)) Then
        Next Cell
        Else
            If (IsEmpty(Range("B" & Cell.Row))) Then
            Next Cell
            Else
                r = Cell.Rows
                c = Cell.Column
                For m = 1 To 12
                'collage de la date
                Sheets("Feuil2").Range("A" & i).Value ("1/" & m & "/2008")
                'collage du nom client
                Sheets("Feuil2").Range("B" & i).Value = Sheets("unités").Range("B" & r).Value
                'collage de la famille
                Sheets("Feuil2").Range("C" & i).Value = Sheets("unités").Cell(c, 4).Value
                'collage de qté
                Sheets("Feuil2").Range("D" & i).Value = Sheets("unités").Cell.Value * Cell(m, 87).Value
                i = i + 1
                Next m
            End If
        End If
    Next Cell        
     
    End Sub
    Merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Une boucle For.... ne peut boucler que par un seul Next.

    Regarde ton code : que sont donc tous ces "Next Cell" pour ta boucle "For each cell ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut
    c'est pour passer à la cell suivante quand la condition n'est pas remplie.
    Mais je vois ce que tu veux dire.
    Je modifie le code en condition "cellule n'est pas vide"


    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
    Sub prevision()
     
    Dim r As Integer
    Dim c As Integer
    Dim i As Integer
    Dim m As Integer
     
    i = 2
     
    Plage = Sheets("unités").Range("C5:G12")
     
     For Each Cell In Plage
        If Not (IsEmpty(Cell)) Then
           If Not (IsEmpty(Range("B" & Cell.Rows))) Then
                r = Cell.Rows
                c = Cell.Column
                For m = 1 To 12
                'collage de la date
                Sheets("Feuil2").Range("A" & i).Value ("1/" & m & "/2008")
                'collage du nom client
                Sheets("Feuil2").Range("B" & i).Value = Sheets("unités").Range("B" & r).Value
                'collage de la famille
                Sheets("Feuil2").Range("C" & i).Value = Sheets("unités").Cell(c, 4).Value
                'collage de qté
                Sheets("Feuil2").Range("D" & i).Value = Sheets("unités").Cell.Value * Cell(m, 87).Value
                i = i + 1
                Next m
               Exit For
            End If
        End If
      Next Cell
     
    End Sub
    mais maintenant j'ai une erreur ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not (IsEmpty(Range("B" & Cell.Rows))) Then

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsEmpty(Range("B" & Cell.Row)) Then

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut
    merci de l'aide
    même sans les parenthèses ça bugue.

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    c'est pour passer à la cell suivante quand la condition n'est pas remplie.
    Ce cas tu le traitais déjà avec tes IF.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par Godzestla Voir le message
    Bonjour,
    Ce cas tu le traitais déjà avec tes IF.
    Quel if ? La plage de recherche concerne "C5:G12"
    Plage = Sheets("unités").Range("C5:G12")
    Donc, s'il a quelque chose dans une cellule de cette plage, il vérifie qu'il ait quelque chose dans une cellule de la même ligne de la colonne B... Ce qui n'est pas très logique, j'en conviens, puisque s'il a quelque chose dans plusieurs des colonnes de C à G et quelque chose dans la colonne B, il répétera plusieurs fois le même code qui suit...
    Tiens, je vois une erreur ici
    r = Cell.Rows
    idem que ma réponse précédente, corrige par
    @Caps corp,
    Dis-nous plutôt ce que tu veux faire
    A+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Dis-nous plutôt ce que tu veux faire
    A+
    ouais mais ça va être dur !!
    Je tente.

    J'ai un tableau 2 entrées
    en ligne : nom du client
    en colonne = Famille produit
    a l'intersection = qté

    Je veux coller dans une autre feuille pour chaque Qté :
    colonne A= date (mois /année)
    colonne B = nom du client
    colonne C = Famille
    colonne D = qté x taux du mois correspond (le Cell( m,87) )

    en fait pour chaque Qté rencontré dans le tableau, je veux créer 12 lignes (1 par mois) reprenant en debut la date (incrementer d'un mois) puis le nom du client (le meme 12 x ) puis la famille (la meme 12x) puis la qté pour le mois.

    voila.

    Citation Envoyé par ouskel'n'or Voir le message
    Rien !
    ???? je ne comprend pas.

    tu suggères ceci
    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
    For Each Cell In Plage
        If IsEmpty(Cell) Then
        Else
        If IsEmpty(Range("B" & Cell.Row)) Then
        Else
                r = Cell.Row
                c = Cell.Column
                For m = 1 To 12
                'collage de la date
                Sheets("Feuil2").Range("A" & i).Value ("1/" & m & "/2008")
                'collage du nom client
                Sheets("Feuil2").Range("B" & i).Value = Sheets("unités").Range("B" & r).Value
                'collage de la famille
                Sheets("Feuil2").Range("C" & i).Value = Sheets("unités").Cell(c, 4).Value
                'collage de qté
                Sheets("Feuil2").Range("D" & i).Value = Sheets("unités").Cell.Value * Cell(m, 87).Value
                i = i + 1
                Next m
               Exit For
            End If
        End If
      Next Cell
    j'ai encore une erreur sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If IsEmpty(Range("B" & Cell.Row)) Then

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut
    Citation Envoyé par Godzestla Voir le message
    Bonjour,



    Ce cas tu le traitais déjà avec tes IF.
    oui mais que mettre aprés THEN si la cellule est vide ?
    condition 1:
    si la cell est vide on passe à la suivante
    si la celle est pleine >> condition 2

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    oui mais que mettre aprés THEN si la cellule est vide ?
    Rien !
    condition 1:
    si la cell est vide on passe à la suivante

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

Discussions similaires

  1. [VBA Word] Next sans for
    Par Dobyan08 dans le forum VBA Word
    Réponses: 6
    Dernier message: 20/10/2016, 10h57
  2. [XL-2007] Erreur de compilation : Next sans For
    Par benjamin_malaussene dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/04/2014, 16h43
  3. Erreur de compilation Next sans For
    Par November-Oscar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/11/2011, 20h01
  4. [XL-2007] Erreur "NEXT sans FOR"
    Par ESVBA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2011, 23h10
  5. [XL-2007] Erreur next sans for, Bizarre!
    Par rvtoulon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/10/2009, 16h19

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