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 :

Macro pour copier coller des lignes avec condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut Macro pour copier coller des lignes avec condition
    Bonjour, j'ai des données des colonnes A à la colonne N

    En colonne A on a des identifiants qui changent et j'ai donc mis un saut de ligne à chaque changement de valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Sub InserLignes()
     Dim i As Long
     On Error Resume Next
     For i = Range("B65536").End(xlUp).Row To 2 Step -1
     If Cells(i, 2) <> Cells(i - 1, 2) Then Rows(i).Insert
     Next
     End Sub
    Elle fonctionne parfaitement

    Ce que je souhaiterais maintenant :

    Pour les lignes groupées, c'est à dire qui ont plusieurs fois le même identifiant d'une ligne à l'autre (donc pas de saut de ligne), j'aimerais que la dernière ligne, s'il est écrit "Active" en colonne N, on puis la couper, et la coller une ligne au dessus et deux colonne sur la droite

    Exemple de lignes groupées

    1 Julien ... INACTIVE
    1 Julien ... INACTIVE
    1 Julien ... ACTIVE

    Je voudrais que la 3ème ligne soit une ligne au dessus et deux colonne sur la droite

    Voilà

    Je vais le coder en langage "normal" pour vous expliquer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Sub CouperColler
     
     Dim i as Long
     
     If i+1=i ET Cells(i,14)="Active"
        Cells(i, A:N).Copy
        ActiveCell.Offset(-1, 2).Paste
        Supprimer Cells(i, A:N)
     End if
     Se positionner à i+1 sur la colonne A
     End Sub
    Voilà, désolé pour ce code de sang mêlé (informaticien-non connaisseur)

    Mais si vous pouviez m'aider merci beaucoup !!!!

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 704
    Par défaut
    Bonjour,
    Où est-ce que résides ton problème exactment ?
    N'utilises pas ActvieCell, cela ne va t'apporter que des problèmes. Est-ce normal que tu copies les colonnes de A à N, mais qu'ensuite tu ne te décales que de 2 colonnes pour coller ?
    Je reprend ton pseudo-code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub CouperColler
    Boucle for i = ...
    
    If i+1=i ET Cells(i,14)="Active" <-- ET en anglais = And. Attention i+1 ne peut JAMAIS être égal à i !!!!! Cells(i, A:N).Copy ActiveCell.Offset(-1, 2).Paste Range("A" & i & ":N" & i).Copy destination:= Range("C" & i-1) <-- on est d'accord que coller une ligne au-dessus et 2 colonnes à droite, c'est coller en cellule Ci-1 ? Supprimer Cells(i, A:N) <--- supprimer = effacer le contenu ou supprimer la ligne ? Effacer -> ClearContents Supprimer la ligne -> Delete End if
    Next i End Sub
    Si supprimer = supprimer la ligne, il faut faire la boucle en sens inverse !
    Vois-tu comment adapter ?
    Une fois que tu as un début de code, tu peux le poster pour qu'on puisse continuer à t'aider : écris le entre balises code (bouton #) !

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut
    Salut, merci d'avoir répondu

    Bah justement c'est le problème, je galère à coder ça j'y arrive pas ...
    J'ai pas de niveau en VBA j'aimerais bien apprendre plus vite mais avec les cours et tout

    Et en fait c'est toute la ligne de la colonne A à N que je colle deux colonne à droite, donc de P à AC, et une ligne au dessus

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 704
    Par défaut
    Est-ce que tu comprends mes commentaires dans le code ?
    Tu as déjà fait une grosse partie du travail, il y a plus qu'à traduire tout en VBA et à adapter 2-3 trucs.
    Pour apprendre les bases de VBA : http://bidou.developpez.com/article/VBA/

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut
    Oui oui j'ai bien compris,

    Et c'est la ligne entière que je souhaite supprimer

    On copie la ligne, on colle deux colonne à droite et une ligne au dessus, et on supprime la ligne qu'on a copié

    Après honnêtement j'ai essayé de fournir un travail de codage parce que je voulais pas vous demander de l'aide en mode "voilà mon problème démerdez-vous"

    Je n'y connais pas grand chose, coder plus serait difficile ...

    Je peux essayer mais ca sera pas glorieux

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub CouperColler
    for i = 1 to i+1
    If i+1=ActiveCell AND Cells(i,14)="Active"   
     Cells(i, A:N).Copy  
     Range("A" & i & ":N" & i).Copy destination:= Range("P" & i-1)    
     Cells(i, A:N).delete       
     End if
     Next if
     End Sub
    Voilà, je viens de tenter un activeCell mais j'y crois pas ahah

Discussions similaires

  1. [XL-2010] Macro pour copier/insérer des lignes en fonction de séparateur dans une cellule
    Par Dncky dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/12/2015, 19h44
  2. [XL-2010] VBA EXCEL: copier/coller des lignes avec conditions
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/11/2015, 12h32
  3. [XL-2007] Macro pour Copier coller des colonnes a partir d'une référence sur une ligne
    Par laurasoe dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/07/2014, 11h10
  4. [OpenOffice][Tableur] PROBLEME pour copier/coller des données avec une légère contrainte
    Par azerty123456789toto dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 26/01/2013, 22h18
  5. [XL-2007] macro pour copier coller des selections multiples
    Par bedoch dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/06/2009, 12h31

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