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 de Next sans For [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Par défaut Problème de Next sans For
    Bonjour,

    Mon piètre niveau ne me permets pas de me dépatouiller de ce problème normallement simple de Next sans For dans une boucle...
    J'ai lu différents posts, j'ai essayé de structurer mes blocs mais rien à faire, cette boucle n'est pas correcte (Pour info, RefAccount est défini en amont de cette partie là du code) :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    'Passer les données en colonne à des données en ligne
     
        With Sheets("Données d'entrée")
     
        j = 2
     
            For i = 4 To .Range(.Rows.Count, 1).End(xlUp).Row
     
                If IsEmpty(.Cells(i, 1)) = True Then
                   Next i
                ElseIf IsEmpty(.Cells(i, 6)) = False And IsEmpty(.Cells(i, 7)) = False Then
                   Sheets("Données de sortie").Range("A" & j).Value = RefAccount
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 6).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                   .Cells(i, 1).Copy Sheets("Données de sortie").Range("A" & j)
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 6).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                   .Cells(i, 1).Copy Sheets("Données de sortie").Range("A" & j)
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 7).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                ElseIf IsEmpty(.Cells(i, 6)) = False And IsEmpty(.Cells(i, 7)) = True Then
                   Sheets("Données de sortie").Range("A" & j).Value = RefAccount
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 6).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                   .Cells(i, 1).Copy Sheets("Données de sortie").Range("A" & j)
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 6).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                Else
                   Sheets("Données de sortie").Range("A" & j).Value = RefAccount
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 7).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                   .Cells(i, 1).Copy Sheets("Données de sortie").Range("A" & j)
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
                   .Cells(i, 4).Copy Sheets("Données de sortie").Range("D" & j)
                   .Cells(i, 7).Copy Sheets("Données de sortie").Range("B" & j)
                   j = j + 1
                End If
     
            Next i
     
        End With
    Ca bloque sur ce Next là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 4 To .Range(.Rows.Count, 1).End(xlUp).Row
     
                If IsEmpty(.Cells(i, 1)) = True Then
                   Next i
    J'ai essayé ça, sans succès non plus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 4 To .Range(.Rows.Count, 1).End(xlUp).Row
     
                If IsEmpty(.Cells(i, 1)) = True Then
            Next i
    Je sèche...

    Est-ce qu'une âme charitable et patiente pourrait m'expliquer pourquoi ça coince SVP ???
    Je vous remercie grandement d'avance et vous souhaite une bonne soirée, ainsi qu'un excellent WE !

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    il ne faut qu'un seul Next par FOR tu en as 2, supprime et supprime en même temps ton premier IF inutile vu que tu ne fais rien si vrai ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           If IsEmpty(.Cells(i, 1)) = True Then
                   Next i
                ElseIf IsEmpty(.Cells(i, 6)) = False And IsEmpty(.Cells(i, 7)) = False Then
                   Sheets("Données de sortie").Range("A" & j).Value = RefAccount
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
              (..)
            Next i
     
        End With
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           If IsEmpty(.Cells(i, 1)) = False And IsEmpty(.Cells(i, 6)) = False And IsEmpty(.Cells(i, 7)) = False Then
                   Sheets("Données de sortie").Range("A" & j).Value = RefAccount
                   .Cells(i, 3).Copy Sheets("Données de sortie").Range("C" & j)
              (..)
            Next i
     
        End With

  3. #3
    Membre éclairé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Par défaut
    Merci beaucoup pour cette réponse bbil pour cette réponse claire, et qui fonctionne, je n'aurai jamais trouvé. C'est pourtant logique...
    Ca bloque sur autre chose mais je vais essayer de trouver tout seul, c'est le meilleur moyen de progresser !
    Encore mille mercis en tout cas

+ 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. [AC-2007] problème next sans for
    Par rominous41 dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/06/2011, 09h50
  3. j'ai une erreur Next sans For
    Par Caps corp dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 22/08/2008, 14h10
  4. Next sans For. Et pourtant, il y est !
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/05/2008, 14h57
  5. Next sans For..alors qu'il y est !
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/04/2008, 22h45

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