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

Excel Discussion :

Copier coller avec condition if and then


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Copier coller avec condition if and then
    Bonjour,

    Je voudrais intégrer une macro avec les conditions suivantes :
    si la ligne 3 est vide ; alors copier (B2:L2) sur la ligne 7 de l'onglet (annexe); sinon copier Range (B2:L2).select
    Range (Selection, Selection.End (XlDown)).select
    sur la ligne 7 de l'onglet (annexe)
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,
    Je me pose des questions.
    si la ligne 3 est vide ; alors copier (B2:L2) sur la ligne 7 de l'onglet (annexe)
    Pour quoi copier une ligne vide su la ligne 7 de la feuille ANNEXE ligne qui contient un titre ?
    sinon copier Range (B2:L2).select
    Range (Selection, Selection.End (XlDown)).select
    sur la ligne 7 de l'onglet (annexe)
    Je suppose qu'il s'agit de copier le contenu de B2:L2 sur la première ligne vide de Annexe et pas sur la ligne 7 ?
    Cordialement.

    RJ

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut copier coller avec condition if and then
    Oui tout à fait sur la première ligne vide la ligne 8

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,
    Voilà la macro
    J'ai utilisé la valeur 65536 pour assurer la compatibilité avec Excel 2003 et antérieur.

    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
    Option Explicit
    Sub test()
    'Déclaration des variables
    Dim DerLignRens As Integer, PremLignVide As Integer
    'Pour déterminer la ligne à transférer (dernière ligne renseignée de la feuille Asie_hors_japon)
    Sheets("Asie_hors_japon").Activate
    DerLignRens = Range("A65536").End(xlUp).Row
    'Copie des données de la ligne dans le presse papier
    Range(Cells(DerLignRens, 2), Cells(DerLignRens, 12)).Copy
     
    'Activation de la feuille Annexe
    Sheets("Annexe").Activate
    'Pour déterminer la première ligne vide de la feuille Annexe
    PremLignVide = Range("A65536").End(xlUp).Row + 1
    'Coller les données copiées
    Cells(PremLignVide, 1).Select
    ActiveSheet.Paste
    'Effacer les pointillés de la sélection copiée
    Application.CutCopyMode = True
    End Sub
    A recopier dans un module
    Je joins votre fichier
    Encodez une nouvelle ligne dans Asie_hors_japon et cliquer sur transfert.
    Cordialement.

    RJ

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    juste une remarque !

    Pour assurer la compatibilité, ne surtout pas mettre en dur un Range mais partir plutôt du nombre de lignes : Rows.Count

    Comme cela, peu importe la version, cela fonctionnera toujours !

    Exemple : DerLignRens = Cells(Rows.Count, 1).End(xlUp).Row
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Merci à Marc-L pour la remarque pertinente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerLignRens = Cells(Rows.Count, 1).End(xlUp).Row …
    Cordialement.

    RJ

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour ces précisions.
    Mais en essayant la macro ne prend en compte que la dernière
    ligne à copier ex : ligne 4; alors que je voudrait qu'elle copie de la ligne 2 à la ligne 4

  8. #8
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerLignRens = Range(Cells(Rows.Count, 1).End(xlUp), Cells(2, 1))
    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

Discussions similaires

  1. Macro- Copier-coller avec conditions
    Par touchard.mathieu dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/02/2014, 17h17
  2. [XL-2007] Macro- Copier-coller avec conditions
    Par natou_pc dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 12/05/2013, 18h57
  3. Utilisation de Copier/Coller avec Condition
    Par teritor dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/11/2012, 11h58
  4. copier coller avec condition
    Par ons1402 dans le forum Excel
    Réponses: 4
    Dernier message: 14/09/2012, 12h45
  5. [XL-2000] macro copier coller avec condition ne marche pas
    Par antfo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/03/2010, 10h54

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