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 :

Copier une colonne dans une autre selon critère


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Copier une colonne dans une autre selon critère
    Bonjour tout le monde,


    Je tente depuis 2 jours de réaliser une macro sans succès. J'ai fait tous les forums possible mais je suis vraiment mauvais dans ce domaine. Je suis à 0% d'avancement. J'explique mon sujet.

    Je dispose d'une colonne A avec des données type texte, certaines de ces données se retrouvent dans la colonne B. Je souhaiterai récupérer les données colonne A en supprimant celles qui sont se retrouvent en colonne B pour les copier en colonne C. On a donc A=B+C
    Exemple avec des chiffres :
    Colonne A : 1, 2, 3, 4, 5, 6, 7, 8, 9
    Colonne B :2, 3, 5
    Colonne C (celle que je souhaite après la macro) : 1, 4, 6, 7, 8, 9

    Un immense merci à celles et ceux qui prendront le temps de me répondre.

    Bonne journée à vous

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour copier les données de plusieurs colonnes ou certaines colonnes selon critères,, je te conseille l'utilisation de la méthode AdvancedFilter et pour supprimer des lignes selon critères, tu peux également utiliser cette méthode

    Exemple avec classeur à télécharger dans ce billet titré Supprimer des lignes suivant critères avec la méthode AdvancedFilter

    Si tu ne connais pas les filtres avancés d'excel, je te conseille la lecture de Les filtres avancés ou élaborés dans Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut besoin d'une macro
    le truc c'est qu'il me faut automatiser tout ça . De tel sortes à ce qu'un seul clic fasse le travail. Ce n'est pas moi qui l'utiliserait mais des personnes qui n'utilisent pas souvent excel (même si je ne suis pas bien meilleur)

    Actuellement je tente de faire qqch du genre :

    Déclaration des variables
    pour cellule i
    tant que
    cellule de colonne 1 non vide
    chercher cellule i dans colonne 2
    si trouvé next
    sinon collé texte dans colonne 3
    i=i+1

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    le truc c'est qu'il me faut automatiser tout ça . De tel sortes à ce qu'un seul clic fasse le travail. Ce n'est pas moi qui l'utiliserait mais des personnes qui n'utilisent pas souvent excel (même si je ne suis pas bien meilleur)
    Et qu'est-ce qui t'en empêche ?
    La méthode AdvancedFilter c'est du VBA et le VBA permet d'automatiser en un seul clic
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Réponse au problème
    J'ai réussi à écrire quelque chose avec un ami. J'y ai ajouté des points pour accélérer le calcul. Je pose ça là si jamais quelqu'un cherche un jour, il aura la réponse. Merci encore

    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
    Sub colonne_ABC()
     
    Application.Calculation = xlManual  'Arrête certains calculs automatiques
    Application.ScreenUpdating = False 'fige l'affichage pendant la macro pour l'accélérer
    Range(Worksheets("CODE").Range("C5"), Worksheets("CODE").Range("C5").End(xlDown)).Clear 'efface la colonne depuis C5 jusqu'à la denriere cellule non vide
     
    Dim temps_debut As Single
    Dim duree As Single
    Dim cellule1 As String
    Dim a1 As Integer
    Dim a2 As Integer
    Dim position1 As String
    Dim position3 As String
    Dim position2 As String
    Dim rg As Range
     
    temps_debut = Timer 'pour chrono de la macro
    Worksheets("CODE").Range("$B$3").End(xlDown).Select 'calcul le nombre de cellules consécutives non vides en colonne B depuis B3 jusqu'à la dernière cellule non vide
     
    a1 = 1 'initialisation des compteurs
    a2 = 1 'initialisation des compteurs
    position1 = "$A$" & CStr(a1 + 4) 
    position3 = "$C$" & CStr(a2 + 4)
    position2 = "$B$4:$B$" & CStr(ActiveCell.Row)
    cellule1 = Worksheets("CODE").Range(position1).Value
     
    Do While cellule1 <> Empty
     Set rg = Worksheets("CODE").Range(position2).Find(cellule1, LookIn:=xlValues, MatchCase:=True)
     If rg Is Nothing Then
      Worksheets("CODE").Range(position3).Value = Worksheets("CODE").Range(position1).Value
      a2 = a2 + 1
      position3 = "$C$" & CStr(a2 + 4)
     End If
     a1 = a1 + 1
     position1 = "$A$" & CStr(a1 + 4)
     cellule1 = Worksheets("CODE").Range(position1).Value
    Loop
     
       duree = Timer - temps_debut 'calcul de la durée de la macro
       Range("A1").Value = duree 'affichage du temps de calcul de la macro en cellule A1
     
    Application.Calculation = xlAutomatic  'Réactive les calculs
     
    End Sub

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/03/2016, 14h14
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Copier les éléments d'une colonne dans une autre
    Par adam57 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 05/12/2008, 15h23
  4. Copier les valeurs d'une colonne dans une autre
    Par hochimi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2007, 13h14
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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