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 dans un code macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Mai 2018
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Mai 2018
    Messages : 93
    Par défaut Problème dans un code macro
    Bonjour,
    J'ai un problème dans mon codage mais je ne vois pas ce qui va pas. Mon macro prend les cellules de la colonne "A" de la feuille "MOI" regarde si dans la colonne "A" de la feuille "TOI", les cellules sont différentes. Si c'est le cas, il sélectionne les lignes des cellules différentes de la feuille "MOI" et les copies à la suite de mon tableau dans la feuille "TOI"
    Voici le 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
    Option Explicit
    Dim DerniereLigne As Integer
    Dim i As Integer
    Dim DerniereLigne2 As Integer
    Dim l
     
     
    Sub test()
     
    Application.ScreenUpdating = False
     
    Sheets("MOI").Select
    DerniereLigne = Range("A65536").End(xlUp).Row
     
    For i = 2 To DerniereLigne
    If Sheets("TOI").Cells(i, 1) <> Sheets("MOI").Cells(i, 1) Then
    Sheets("Moi").Cells(i, 1).Activate 'Problème à ce niveau la
    Rows(i).Select
    Selection.Copy
    Sheets("TOI").Select
    If Cells(2, 1).Value = "" Then
    DerniereLigne2 = 2
    Else
    DerniereLigne2 = Range("A2").End(xlDown).Row + 1
    End If
    Cells(DerniereLigne2, 1).Select
    ActiveSheet.Paste
    Else: Cells(i, 1).Activate
    Rows(i).Select
    End If
    Next
     
    Application.ScreenUpdating = True
     
    End Sub
    Merci d'avance pour votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Moi").Cells(i, 1).Activate 'Problème à ce niveau la
    Peut-être en 2 temps :

    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Moi").Activate
    Range("A" & i).Select
    ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Mai 2018
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Mai 2018
    Messages : 93
    Par défaut
    Avec ce code, il me copie seulement la première ligne dont la cellule de la feuille "MOI" est différente de toutes les cellules de la feuille "TOI". Qu'est qu'il faut modifier pour qu'ils fonctionnent pour toutes les lignes dont les cellules de la colonne A de "MOI" sont différentes des cellules de la colonne A de "TOI?

    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
    Option Explicit
    Dim DerniereLigne As Integer
    Dim i As Integer
    Dim DerniereLigne2 As Integer
    Dim l
     
     
    Sub test()
     
    Application.ScreenUpdating = False
     
    Sheets("MOI").Select
    DerniereLigne = Range("A65536").End(xlUp).Row
     
    For i = 1 To DerniereLigne
    If Sheets("TOI").Cells(i, 1) <> Cells(i, 1) Then
    Sheets("Moi").Activate
    Range("A" & i).Select
    Rows(i).Select
    Selection.Copy
    Sheets("TOI").Select
    If Cells(2, 1).Value = "" Then
    DerniereLigne2 = 2
    Else
    DerniereLigne2 = Range("A2").End(xlDown).Row + 1
    End If
    Cells(DerniereLigne2, 1).Select
    ActiveSheet.Paste
    End If
    Next
     
    Application.ScreenUpdating = True
     
    End Sub

Discussions similaires

  1. [XL-2007] problème dans du code en VBA dans une macro
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/12/2010, 18h05
  2. Réponses: 13
    Dernier message: 17/10/2006, 15h35
  3. Problème dans le code?
    Par Arch Enemy dans le forum C
    Réponses: 5
    Dernier message: 15/08/2006, 11h05
  4. [MySQL] Un problème dans le code PHP
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/07/2006, 11h06
  5. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09

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