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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    mars 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : mars 2016
    Messages : 51
    Points : 17
    Points
    17

    Par défaut Copier/Coller sur une autre feuille au meme endroit

    Bonjour,

    voila j'ai fait le tour des forums mais je ne trouve pas la solution a une manip très basique

    j'aimerais copier les valeurs de cellules non vides vers une autre feuille exactement au même endroit ! En soit très simple, mais je n'arrive pas a "coller" exactement au même endroit.

    je sais que mon problème est ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TOTAL").Range("H5:NI27").PasteSpecial xlPasteAll
    la plage sur laquelle je veux coller est celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TOTAL").Range("H5:NI27")
    je vous laisse mon code en dessous et je vous remercie par avance !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub copiercoler()
    Dim myRange As Range
    Dim cell As Range
     
    Set myRange = Sheets("RECUP").Range("H5:NI27")
    For Each cell In myRange
        If cell <> "" Then
        cell.Copy
        Sheets("TOTAL").Range("H5:NI27").PasteSpecial xlPasteAll
        End If
    Next cell
     
    End Sub

  2. #2
    Expert éminent

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    3 727
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : avril 2013
    Messages : 3 727
    Points : 9 520
    Points
    9 520
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par jujudeo Voir le message
    Bonjour,

    A tester :
    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
     
    Sub CopierColler()
     
    ' Copie les cellules avec leurs propriétés : plus long.
     
    Dim I As Long
    Dim MyRangeSource As Range, MyRangeCible As Range
     
        Set MyRangeSource = Sheets("RECUP").Range("H5:NI27")
        Set MyRangeCible = Sheets("TOTAL").Range("H5:NI27")
     
        For I = 1 To MyRangeSource.Count
            If MyRangeSource(I) <> "" Then
               MyRangeSource(I).Copy Destination:=MyRangeCible(I)
            End If
        Next I
     
        Set MyRangeSource = Nothing
        Set MyRangeCible = Nothing
     
    End Sub
     
     
    Sub CopierCollerContenu()
     
    ' Copie uniquement le contenu : plus rapide.
     
    Dim I As Long
    Dim MyRangeSource As Range, MyRangeCible As Range
     
        Set MyRangeSource = Sheets("RECUP").Range("H5:NI27")
        Set MyRangeCible = Sheets("TOTAL").Range("H5:NI27")
     
        For I = 1 To MyRangeSource.Count
            If MyRangeSource(I) <> "" Then MyRangeCible(I) = MyRangeSource(I)
        Next I
     
        Set MyRangeSource = Nothing
        Set MyRangeCible = Nothing
     
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    mars 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : mars 2016
    Messages : 51
    Points : 17
    Points
    17

    Par défaut

    Salut Eric, effectivement cela marche si je n'avais pas de propriété !!

    Or, je dois copié le contenu de la cellule mais aussi le remplissage. j'ai trouvé par une autre personne ". adresse" une fonction que je ne connaissais pas du tout et qui marche super bien
    Du coup mon code est le suivant :
    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
    Sub copiercoler()
    Dim myRange As Range
    Dim cell As Range
     
    Sheets("C.P").Range("H5:NI27").Copy
    Sheets("TOTAL").Range("H5:NI27").PasteSpecial xlPasteAll
     
    Set myRange = Sheets("C.P").Range("H5:NI27")
    For Each cell In myRange
        If cell <> "" Then
        cell.Copy Sheets("TOTAL").Range(cell.Address)
        End If
    Next cell
     
    Set myRange = Sheets("RECUP").Range("H5:NI27")
    For Each cell In myRange
        If cell <> "" Then
        cell.Copy Sheets("TOTAL").Range(cell.Address)
        End If
    Next cell
     
    Set myRange = Sheets("ARRET").Range("H5:NI27")
    For Each cell In myRange
        If cell <> "" Then
        cell.Copy Sheets("TOTAL").Range(cell.Address)
        End If
    Next cell
     
    Set myRange = Sheets("EV. FAM.").Range("H5:NI27")
    For Each cell In myRange
        If cell <> "" Then
        cell.Copy Sheets("TOTAL").Range(cell.Address)
        End If
    Next cell
     
    Set myRange = Sheets("SANS SOLDE").Range("H5:NI27")
    For Each cell In myRange
        If cell <> "" Then
        cell.Copy Sheets("TOTAL").Range(cell.Address)
        End If
    Next cell
     
    End Sub
    J'ai 5 feuilles du coup il a l'air un peu fastidieux. Il marche très bien mais je ne sais pas s'il est possible de l'optimiser étant donner que je réalise la même chose sur 5 feuilles...

  4. #4
    Membre chevronné Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 918
    Points : 1 806
    Points
    1 806

    Par défaut

    Citation Envoyé par jujudeo Voir le message
    Il marche très bien mais je ne sais pas s'il est possible de l'optimiser étant donner que je réalise la même chose sur 5 feuilles...
    Bonjour,

    Tu boucler une seule fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub copiercoler()
    Dim myRange As Range
    Dim cell As Range
      Worksheets("C.P").Range("H5:NI27").Copy Worksheets("TOTAL").Range("H5")
      Set myRange = Worksheets("TOTAL").Range("H5:NI27")
      For Each cell In myRange
        If Worksheets("RECUP").Range(cell.Address) <> "" Then Worksheets("RECUP").Range(cell.Address).Copy cell
        If Worksheets("ARRET").Range(cell.Address) <> "" Then Worksheets("RECUP").Range(cell.Address).Copy cell
        If Worksheets("EV. FAM.").Range(cell.Address) <> "" Then Worksheets("RECUP").Range(cell.Address).Copy cell
        If Worksheets("SANS SOLDE").Range(cell.Address) <> "" Then Worksheets("RECUP").Range(cell.Address).Copy cell
      Next cell
    End Sub
    Cordialement,
    Patrice
    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

Discussions similaires

  1. Copier Ligne et coller sur une autre feuille Macros Excel 2016
    Par V.almeida dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2018, 16h41
  2. [LibreOffice][Tableur] perte diagramme sur copier coller dans une autre feuille de calc !
    Par samkad dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 26/02/2018, 10h28
  3. Réponses: 13
    Dernier message: 04/01/2017, 13h02
  4. Copier une image sur une feuille et la coller sur une autre feuille
    Par Hierog dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/03/2011, 13h21
  5. Recherche et copier/coller sur une autre feuille
    Par AzelRoth dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2009, 11h21

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