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 :

Erreur d'exécution 91: Variable objet ou variable de bloc With non définie.


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut Erreur d'exécution 91: Variable objet ou variable de bloc With non définie.
    Bonjour,

    J’arrive pas à résoudre mon problème depuis deux jours, je ne retrouvais plus le rubrique pour publier, je me suis bloquer sur une macro simple, j’ai un tableau avec des colonnes et sur 3 Colonnes S T U à partir de la ligne 8 de mon tableau j’ai des ok et Nok, je voulais copier (source) et coller (destination) sur une autre feuille du meme fichier ou d'un autre fichier du même dossier, si c’est NOK , mais pas la ligne entière juste quelques cellules de la ligne et ainsi de suite jusqu'à la dernière ligne non vide, j’arrive pas lui dire de passer à la ligne suivante et aussi de coller sur l’autre feuille destination au niveau de la dernière ligne vide les quelques cellules que je vais copier. ainsi faire un boucle pour recommencer l'exercice

    J’ai fait une macro mais trop d’erreurs, j’aimerai vraiment de l’aide, des explications si possible

    Cordialement
    Papis

    Si vous aviez besoin du fichier je le mettrais

    mon 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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    Sub MacroCopieCellIfNOk()
     
    Dim x As Variant
     
    Dim LastRow As Long
    Dim WsDepart As Worksheet
    Dim WsDestination As Worksheet
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     
        Set WsDestination = SHEETS("Lup")
        Set WsDepart = SHEETS("Developpement")
     
     
        ' Cela suppose que la colonne S soit remplie
        '   avec qqs données sinon à adapter à ton contexte
     
    LastRow = WsDestination.Range("A" & Rows.Count).End(xlUp).Row
     
    Application.Calculation = xlManual
     
    For Each x In Range("S8", Range("U65000").End(xlUp).Offset(0, -1))
     
     
    'Si valcell = NOK copier les Celulles concernées depuis la feuille (Developpement)  et coller dans la feuille (LUP)
     
     
    If x = "NOK" Then
     
        With WsDepart
        Range("E6:H6").UnMerge
        End With
        With WsDestination
        End With
     
        With WsDepart
        WsDepart.Range("E6").Copy
        WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
        End With
     
        WsDepart.Range("C18").Copy
        WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
        With WsDepart
        Range("E6:H6").Merge
        End With
     
        WsDepart.Range("AA4").Copy
        WsDestination.Range("C" & LastRow + 1).PasteSpecial xlPasteValues
     
     
        WsDepart.Range("V5").Copy
        WsDestination.Range("D" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AA1").Copy
        WsDestination.Range("E" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y5").Copy
        WsDestination.Range("F" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("F1").Copy
        WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y6").Copy
        WsDestination.Range("H" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y5").Copy
        WsDestination.Range("I" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("V8").Copy
        WsDestination.Range("K" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("L" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("M" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("N" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("O" & LastRow + 1).PasteSpecial xlPasteValues
     
     
        'WsDepart.Range("C15:C22").ClearContents
     
        Set WsDestination = Nothing
        Set WsDepart = Nothing
     
    End If
     
    Application.Calculation = xlAutomatic
    Application.DisplayAlerts = True
     
       'attention a spécifié la variable de la fonction next
    Next x
     
    Application.ScreenUpdating = True
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Bonjour,

    Merci d'utiliser les balises code (bouton #) pour rendre le code plus lisible.
    Si tu pouvais aussi préciser a quelle ligne tu as l'erreur, tu auras surement plus de réponse.

    je voulais copier (source) et coller (destination) sur une autre feuille du meme fichier ou d'un autre fichier du même dossier, si c’est NOK
    Ca peut se faire sans boucle (donc plus rapidement), je te conseille la lecture de ce tuto: http://philippetulliez.developpez.co...dvancedfilter/

    edit:
    A quoi te servent tout ces with ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With WsDepart
     Range("E6:H6").UnMerge
     End With
     With WsDestination
     End With
    Ici le With WsDestination se termine juste en dessous donc il ne sert a rien
    Et le With WsDepart n'est pas utilisé puisqu'il n'y a pas de point devant le range à la ligne du dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With WsDepart
     WsDepart.Range("E6").Copy
     WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
     End With
    idem tu met un with que tu n'utilise pas
    soit tu écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WsDepart.Range("E6").Copy
    soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With WsDepart
    .Range("E6").Copy
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour votre réponse,

    j'ai l'erreur au niveau de cette ligne de code, et quand je vais dans mon fichier excel, il me copie la premiere ligne et puis s'arrete en mettant "erreur d'exécution 91"

    WsDepart.Range("E6").Copy


    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     Sub MacroCopieCellIfNOk()
     
    Dim x As Variant
     
    Dim LastRow As Long
    Dim WsDepart As Worksheet
    Dim WsDestination As Worksheet
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     
    Set WsDestination = SHEETS("Lup")
    Set WsDepart = SHEETS("Developpement")
     
     
    ' Cela suppose que la colonne S soit remplie
    ' avec qqs données sinon à adapter à ton contexte
     
    LastRow = WsDestination.Range("A" & Rows.Count).End(xlUp).Row
     
    Application.Calculation = xlManual
     
    For Each x In Range("S8", Range("U65000").End(xlUp).Offset(0, -1))
     
     
    'Si valcell = NOK copier les Celulles concernées depuis la feuille (Developpement) et coller dans la feuille (LUP)
     
     
    If x = "NOK" Then
     
    With WsDepart
    Range("E6:H6").UnMerge
    End With
    With WsDestination
    End With
     
    With WsDepart
    WsDepart.Range("E6").Copy
    WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
    End With
     
    WsDepart.Range("C18").Copy
    WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
    With WsDepart
    Range("E6:H6").Merge
    End With
     
    WsDepart.Range("AA4").Copy
    WsDestination.Range("C" & LastRow + 1).PasteSpecial xlPasteValues
     
     
    WsDepart.Range("V5").Copy
    WsDestination.Range("D" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("AA1").Copy
    WsDestination.Range("E" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("Y5").Copy
    WsDestination.Range("F" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("F1").Copy
    WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("Y6").Copy
    WsDestination.Range("H" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("Y5").Copy
    WsDestination.Range("I" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("B8").Copy
    WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("V8").Copy
    WsDestination.Range("K" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("B8").Copy
    WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("AF3").Copy
    WsDestination.Range("L" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("AF3").Copy
    WsDestination.Range("M" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("AF3").Copy
    WsDestination.Range("N" & LastRow + 1).PasteSpecial xlPasteValues
     
    WsDepart.Range("AF3").Copy
    WsDestination.Range("O" & LastRow + 1).PasteSpecial xlPasteValues
     
     
    'WsDepart.Range("C15:C22").ClearContents
     
    Set WsDestination = Nothing
    Set WsDepart = Nothing
     
    End If
     
    Application.Calculation = xlAutomatic
    Application.DisplayAlerts = True
     
    'attention a spécifié la variable de la fonction next
    Next x
     
    Application.ScreenUpdating = True
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    J'ai édité mon message précédent sur l'utilisation des with.

    Je ne comprends pas ce que tu fais avec ta boucle, peut importe la valeur de x c'est toujours les même lignes que tu copies.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Bjr

    je ne veux pas copier la même ligne, je veux copier la ligne correspondant à la cellule où j'ai un Nok, mais pas la ligne quelques cellules à des colonnes spécifiques
    Par exemple si j'ai un Nok, je copie quelques titre en haut de feuille les lignes 1 à 8 et les autres données, sur la meme ligne mais à des colones différentes

    Merci beaucoup

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je pense que tu n'as pas du tout compris le principe des structures With.
    La plupart de celles se trouvant dans ton code sont inutiles et celles qui pourraient être utiles ne sont pas utilisées correctement.
    Lis ça : https://msdn.microsoft.com/fr-fr/VBA...with-statement
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Citation Envoyé par papisco871 Voir le message
    je ne veux pas copier la même ligne, je veux copier la ligne correspondant à la cellule où j'ai un Nok, mais pas la ligne quelques cellules à des colonnes spécifiques
    Par exemple si j'ai un Nok, je copie quelques titre en haut de feuille les lignes 1 à 8 et les autres données, sur la meme ligne mais à des colones différentes
    J'insiste tu devrais vraiment essayer de passer un filtre, cf le lien de mon premier message
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    halaster08 : je vais revoir mon compte et revenir vers vous, en fait je voulais une macro parce que j'aurais plusieurs fichiers de la même forme. au final, je vais les regrouper.

    Menhir : je vais modifier et laisser que les with importants : j'en ai rajouter parce que ma macro voulait pas tourner et me demander des with

    Est ce possible d'après ce que vous aviez compris de me proposer un code SVP, et des explications si possible

    Merci par avance

    Papis

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Citation Envoyé par papisco871 Voir le message
    je vais revoir mon compte et revenir vers vous, en fait je voulais une macro parce que j'aurais plusieurs fichiers de la même forme. au final, je vais les regrouper.
    Les filtres ça marche aussi en macro, et c'est sans boucle donc plus simple

    Est ce possible d'après ce que vous aviez compris de me proposer un code SVP, et des explications si possible
    http://club.developpez.com/regles/#LIV-N

    Il y a une section tutoriel sur le site, si tu veux apprendre je te conseille vivement de commencer par là.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    halaster08 : Merci beaucoup pour ces conseils très utiles, sympa le lien, cela m'a beaucoup aidé

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par papisco871 Voir le message
    Est ce possible d'après ce que vous aviez compris de me proposer un code SVP, et des explications si possible
    Lire le lien que je t'ai fourni pour essayer de corriger ton code par toi-même n'est pas une option envisageable selon toi ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    bien-sur que si justement, je suis train d'essayer j'ai enlever les with qui ne servent a rien.
    après il me copie juste la première ligne du Nok trouver (les cellules que je lui ai dit) et puis cela s'arrête.

    j'aimerai plus comprendre et le faire moi même c'est le but, mais j'ai corriger et j'ai eu la même chose.

    Après si j'y arrive pas, c'est pas je vais reprendre via d'autres codes
    mais effectivement il y'a plus de with

    j'ai laissé les Set du départ

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    Sub MacroCopieCellIfNOk()
     
    Dim x As Variant
     
    Dim LastRow As Long
    Dim WsDepart As Worksheet
    Dim WsDestination As Worksheet
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     
        Set WsDestination = SHEETS("Lup")
        Set WsDepart = SHEETS("Developpement")
     
     
        ' Cela suppose que la colonne S soit remplie
        '   avec qqs données sinon à adapter à ton contexte
     
    LastRow = WsDestination.Range("A" & Rows.Count).End(xlUp).Row
     
    Application.Calculation = xlManual
     
    For Each x In Range("S8", Range("U65000").End(xlUp).Offset(0, -1))
     
     
    'Si valcell = NOK copier les Celulles concernées depuis la feuille (Developpement)  et coller dans la feuille (LUP)
     
     
    If x = "NOK" Then
     
        WsDepart.Range("E6").Copy
        WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
     
     
     
        WsDepart.Range("E6").Copy
        WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("C18").Copy
        WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
        WsDepart.Range("E6:H6").Merge
     
        WsDepart.Range("AA4").Copy
        WsDestination.Range("C" & LastRow + 1).PasteSpecial xlPasteValues
     
     
        WsDepart.Range("V5").Copy
        WsDestination.Range("D" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AA1").Copy
        WsDestination.Range("E" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y5").Copy
        WsDestination.Range("F" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("F1").Copy
        WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y6").Copy
        WsDestination.Range("H" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y5").Copy
        WsDestination.Range("I" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("V8").Copy
        WsDestination.Range("K" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("L" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("M" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("N" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("O" & LastRow + 1).PasteSpecial xlPasteValues
     
     
        'WsDepart.Range("C15:C22").ClearContents
     
        Set WsDestination = Nothing
        Set WsDepart = Nothing
     
     
    End If
     
    Application.Calculation = xlAutomatic
    Application.DisplayAlerts = True
     
       'attention a spécifié la variable de la fonction next
    Next x
     
    Application.ScreenUpdating = True
     
    End Sub

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    regarde ou tu a mis la determination de "lastrow"
    tu n'a pas l'impression que tu peux faire autant de tours que tu veux dans une boucle lastrow restera identique dans ta boucle ?? et meme avec +1
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par papisco871 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set WsDestination = SHEETS("Lup")
        Set WsDepart = SHEETS("Developpement")
    Ceci ne peut pas provenir de VBE.
    Ca met un doute sur l'intégralité du code que tu as fourni.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.Calculation = xlManual
    En phase de débuggage, on ne joue pas les yeux bandés. On optimise la vitesse d'exécution que lorsque le code tourne correctement.
    Donc supprime ces trois lignes (ou mets-les en Rem) pour savoir ce que fait ton code à l’exécution.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        WsDepart.Range("E6").Copy
        WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("E6").Copy
        WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
    Ces deux groupes de lignes sont identiques, donc soit tu as fait une erreur, soit ton code a besoin d'être nettoyé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
    Idem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        WsDepart.Range("E6:H6").Merge
    Y a-t-il une raison de faire cette modification exactement les mêmes cellules à chaque tour ?
    Déjà que le Merge est généralement une mauvaise idée, là tu Merge des cellules qui le sont déjà.
    En plus, il est rare que dans un transfert de données, ce soit le fichier source qui soit modifié.

    Mais surtout, tu n'incrémentes pas ta variable LastRow chaque fois que tu ajoutes des données.
    Donc chaque données sont copiées sur la même ligne.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut re
    Bjr
    c'est pour le coller dans mon fichier destination, la colonne spécifique de la première ligne vide (lastrow +1), cela devrait être quoi alors ?

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    tu n'a pas l'impression que pour la destination G lastrow+1 il y a un soucis avec les lignes 40/41 et 57/58
    ?????

    edit:
    ligne 40/41
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WsDepart.Range("C18").Copy
    WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
    ligne 57/58
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WsDepart.Range("F1").Copy
    WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Menhir : c'est une erreur de nettoyage pour le debut mais vers la fin c'est fait exprès

    Menhir : y'a des cellules dont je connais pas encore leur valeurs dans la feuilles source j'ai mis comme ca au hasard, mais je le corrige now, même changer de cellules pour que cela se ressemble pas.
    sinon les merges c'est pour dissocier avant de copier sinon cela bug et ne veut pas copier. et une fois copier je le fractionne à nouveau
    franchement, j'essai vraiment de comprendre

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    tu n'a pas l'impression que pour la destination G lastrow+1 il y a un soucis avec les lignes 40/41 et 57/58
    ?????

    edit:
    ligne 40/41
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WsDepart.Range("C18").Copy
    WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
    ligne 57/58
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WsDepart.Range("F1").Copy
    WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues

    Normalement c'est H, après G, je n’arrêtais pas de copier coller mes codes pour rajouter mes colonnes c'est pour cela

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut re
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Sub MacroCopieCellIfNOk()
     
    Dim x As Variant
     
    Dim LastRow As Long
    Dim WsDepart As Worksheet
    Dim WsDestination As Worksheet
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     
    Set WsDestination = SHEETS("Lup")
    Set WsDepart = SHEETS("Developpement")
     
     
        ' Cela suppose que la colonne S soit remplie
        '   avec qqs données sinon à adapter à ton contexte
     
     
        LastRow = WsDestination.Range("A" & Rows.Count).End(xlUp).Row
     
        Application.Calculation = xlManual
     
        For Each x In Range("S8", Range("U65000").End(xlUp).Offset(0, -1))
     
        'Si valcell = NOK copier les Celulles concernées depuis la feuille (Developpement)  et coller dans la feuille (LUP)
     
        If x = "NOK" Then
     
        WsDepart.Range("E6:H6").UnMerge
        WsDepart.Range("E6").Copy
        WsDestination.Range("B" & LastRow + 1).PasteSpecial xlPasteValues
        WsDepart.Range("E6:H6").Merge
     
        WsDepart.Range("AA4").Copy
        WsDestination.Range("C" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("V5").Copy
        WsDestination.Range("D" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AA1").Copy
        WsDestination.Range("E" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y5").Copy
        WsDestination.Range("F" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("F1").Copy
        WsDestination.Range("G" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y6").Copy
        WsDestination.Range("H" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("Y9").Copy
        WsDestination.Range("I" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("V8").Copy
        WsDestination.Range("K" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("B8").Copy
        WsDestination.Range("J" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("L" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("M" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("N" & LastRow + 1).PasteSpecial xlPasteValues
     
        WsDepart.Range("AF3").Copy
        WsDestination.Range("O" & LastRow + 1).PasteSpecial xlPasteValues
     
     
        'WsDepart.Range("C15:C22").ClearContents
     
    Set WsDestination = Nothing
    Set WsDepart = Nothing
     
    End If
     
    Application.Calculation = xlAutomatic
    Application.DisplayAlerts = True
     
       'attention a spécifié la variable de la fonction next
    Next x
     
    Application.ScreenUpdating = True
     
     
    End Sub
    VOILA LE NETTOYAGE QUE JE VIENS DE FAIRE

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut RE
    Bon
    j'ai passer les ligne en revu
    en gros sa se resume a ceci
    WBK2.b lastrow =WBK1.E6
    WBK2.G lastrow =WBK1.c18 !!!!!!!!!!!!!????????????
    WBK2.C lastrow =WBK1.AA4
    WBK2.D lastrow =WBK1.v5
    WBK2.E lastrow =WBK1.AA1
    WBK2.F lastrow =WBK1.Y5 2d enigme?????????
    WBK2.G lastrow =WBK1.F1 !!!!!!!!!!!!!!!!!!???????????
    WBK2.H lastrow =WBK1.Y6
    WBK2.I lastrow =WBK1.Y5 2d enigme ??????
    WBK2.J lastrow =WBK1.B8
    WBK2.K lastrow =WBK1.V8
    WBK2.J lastrow =WBK1.B8
    WBK2.M lastrow =WBK1.AF3 ???????
    WBK2.N lastrow =WBK1.AF3 ????????
    WBK2.O lastrow =WBK1.AF3 ????????

    est tu sur de cela ???

    si c'est le cas fait moi plaisir met les dans l'ordre du wbk2 tu y verra deja plus clair
    et pour ce qui concerne la methode aussi en une seule ligne !!!!!!
    un array de cellule ca te parle ?
    plutot que paste........????
    A mediter
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Réponses: 14
    Dernier message: 23/05/2016, 14h05
  2. erreur d'exécution 91 variable objet ou variable de bloc with non définie
    Par ramo123469 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/04/2016, 14h55
  3. [XL-2013] erreur d'exécution 91 variable objet ou variable de bloc with non définie
    Par tmlpqsdpmdlc dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 08/06/2015, 13h25
  4. Réponses: 6
    Dernier message: 24/02/2015, 09h06
  5. Réponses: 4
    Dernier message: 24/05/2014, 19h24

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