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 coller - Ignorer Cellule Vide


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Copier coller - Ignorer Cellule Vide
    Bonjour tout le monde !

    J'ai une petite question, je dois copier différents ranges d'une même colonne d'une page excel à une autre.

    Le problème c'est qu'il y a des cellules vides entre ces différents ranges.

    Je n'arrive pas à trouver le moyen d'ignorer ces cellules.

    Quelqu'un aurait une idée ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Salut,

    tu peux nous montrer le code VBA que tu utilises stp ?
    Qu'on parte de l'existant pour te donner les meilleures pistes de solution =]

    Tu nous dis egalement qu'il y a des cellules vides "entre", ca veut dire qu'il y a des "trous" avant ou apres ta copie ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    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 761
    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 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quelqu'un aurait une idée ?
    Manuellement, il y a au moins deux façons de le faire.
    1. Sélectionner les cellules remplies (cellules non contiguës).
      Copier les cellules sélectionnées et les coller dans la cellule cible
    2. Copier la plage complète (avec les lignes vides)
      Copier la plage sélectionnée et Coller en sélectionnant la cellule cible
      Utiliser la boîte de dialogue Atteindre en sélectionnant les cellules vides
      Supprimer les lignes entières

    Tu exécutes cela avec l'enregistreur de macros et tu reviens te faire aider éventuellement
    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

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Les cellules vides se trouve au sein du range A6:A129
    Le problèmes c'est que leurs places et nombres peut changer.
    Il faudrait donc les "détecter" dans un premier temps puis les coller par la suite.

    Voici le code utilisé pour le moment, un simple copier/coller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub copy_past_ticker()
     
    Worksheets("Morning").Range("A6:A129").Copy _
    Destination:=Worksheets("Commnentaire").Range("A57:A106")
     
    End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Désolé, je viens seulement de voir ton message.

    Si j'enregistre la macro avec une manipulation manuelle, elle prendra toujours en compte les memes ranges. J'ai besoin que la macro s'adapte

  6. #6
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,
    Essaie de voir avec range.SpecialCells (voir l'aide VBA) => SpecialCells(xlCellTypeConstants)
    ex (ici je n'ai pas fait le pointage des feuilles):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A6:A129").SpecialCells(xlCellTypeConstants).Copy Destination:=Range("E6")
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    En bidouillant j'ai codé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Worksheets("Morning").Select
        Range("A5").Select
        Range("A6:A129").Select
        Selection.SpecialCells(xlCellTypeConstants, 23).Select
        Selection.copy
        Range("U8").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Selection.copy
        Sheets("Commnentaire").Select
        ActiveWindow.SmallScroll Down:=-75
        Range("A57").Select
        ActiveSheet.Paste
    Qui me convient parfaitement
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Elle mériterait d'être plus connue

    Merci pour votre aide

  8. #8
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,
    pour mettre le code il faut utiliser le bouton # et mettre ton code entre les balises "[CODE ][/CODE ]" (modifier précédent message si possible svp)
    Attention dans la plupart des cas, Select, Selection sont à banir, voir l'exemple donné
    Le pointage des feuilles : MaFeuille.Range(…… donc on aura :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Morning").Range("A6:A129").SpecialCells(xlCellTypeConstants).Copy Destination:=Worksheets("Commnentaire").Range("A57")
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] copier/coller des cellules vers une première ligne vide
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/06/2011, 23h35
  2. copier coller plage cellule avec Offset
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2008, 14h03
  3. Macro copier coller première cellule vide
    Par jul85 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/02/2008, 17h06
  4. [Excel] selection et copier-coller de cellule sans activer les sheets
    Par franckB dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/04/2007, 23h26
  5. Réponses: 5
    Dernier message: 14/02/2006, 14h32

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