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 a l interieur de la propre feuille dans toutes les feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut copier coller a l interieur de la propre feuille dans toutes les feuilles
    Bonjour
    J ai un classeur qui contient une centaine de feuilles. Dans chaque feuilles, il y a un tableau "Range("BO2:BQ5")" et je dois le deplacer en "Range("N8")" de sa propre feuille. Il y a 3 feuilles qui ne sont pas concernées les feuilles : "Maquette"; "liste" et "tableau de recup". le copiage est une copie spécial image avec liaison.

    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
    Sub CopierCollerImageLiaison()
    '
    ' CopierCollerImageLiaison Macro
    '
     
    '
    Application.ScreenUpdating = False
     
    Dim MonClasseur As Workbook
    Dim MaFeuille As Worksheets
     
    For Each MonClasseur In Workbooks
     
            For Each MonSheet In MonClasseur.Sheets '
     
                If MonSheet.Name <> "Maquette" And MonSheet.Name <> "liste" And MonSheet.Name <> "Tableau de recup" Then
     
         With MaFeuille
            Range("BO2:BQ5").Select
            Application.CutCopyMode = False
            Selection.Copy
     
            Range("N8").Select
            'Coller image avec liaison
            ActiveSheet.Pictures.Paste(Link:=True).Select
     
            Range("N13").Select
        End With
     
                End If
     
            Next
     Next
     
    End Sub
    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut dodo28 et le forum
    Et tu demandes quoi ?

    J'ai remarqué de petites imperfections dans ton code, alors en attendant ta question
    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
    Sub CopierCollerImageLiaison()
    Dim MonClasseur As Workbook
    Dim MaFeuille As Worksheets
     
    Application.ScreenUpdating = False
     
    For Each MonClasseur In Workbooks
            For Each MaFeuille In MonClasseur.Sheets 
                If MaFeuille.Name <> "Maquette" And MaFeuille.Name <> "liste" And MaFeuille.Name <> "Tableau de recup" Then
                    With MaFeuille
                            '-------------------------------------------
                            .Range("BO2:BQ5").Copy
                            .Range("N8").Select
                            'Coller image avec liaison
                            ActiveSheet.Pictures.Paste(Link:=True).Select
                            '-------------------------------------------
                            'tu veux faire quoi, avec ses manips ?  ------
                            .Range("N13").Select
                            'est-ce bien nécessaire ???
                    End With
                End If
    Next
    End Sub
    Tu copies une plage, et tu veux coller une image ? Je ne comprends pas!
    Tu ne veux que déplacer la plage BO2:BQ5 en N8:O11, en gardant les formules telles qu'elles sont à l'origine ?
    Juste recopier les valeurs de BO2:BQ5 en les recopiant avec liaison en N8:Q11 ?
    A+

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut
    merci pour les conseils mais ca plante encore
    En faite je veux coller en format image avec liaison donc avec excel 2007 il faut faire un coller "en tant qu'image avec liaison". Comme ceci le format des colonnes n'est pas modifié et cela permet de le deplacer dans le tableau comme on veut.
    Je viens d 'essayer avec tes corrections mais ca bug 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
    Sub CopierCollerImageLiaison1()
    Dim MonClasseur As Workbook
    Dim MaFeuille As Worksheets
     
    Application.ScreenUpdating = False
     
    For Each MonClasseur In Workbooks
            For Each MaFeuille In MonClasseur.Sheets
                If MaFeuille.Name <> "Maquette" And MaFeuille.Name <> "liste" And MaFeuille.Name <> "Tableau de recup" Then
                    With MaFeuille
                            '-------------------------------------------
                            .Range("BO2:BQ5").Copy
                            .Range("N8").Select
                            'Coller image avec liaison
                            ActiveSheet.Pictures.Paste(Link:=True).Select
                            '-------------------------------------------
     
                    End With
                End If
    Next
    Next
    End Sub
    merci

    j'ai fait avec ca mais maintenant ca bug au niveau de la ligne .range("n18").select
    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
    Sub CopierCollerImageLiaison1()
     
    Application.ScreenUpdating = False
     
    For Each sh In Sheets
            'For Each sh In MonClasseur.Sheets
                If sh.Name <> "Maquette" And sh.Name <> "liste" And sh.Name <> "Tableau de recup" Then
                    With sh
                            '-------------------------------------------
                            .Range("BO2:BQ5").Copy
                            .Range("N8").Select
                            'Coller image avec liaison
                            ActiveSheet.Pictures.Paste(Link:=True).Select
                            '-------------------------------------------
     
                    End With
                End If
    Next
     
    End Sub
    merci

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut dodo28 et le forum
    Je n'ai pas la version 2007 et donc certaines instructions m'échappent
    Tu ne peux selectionner une plage dans une feuille que si la feuille est active (ou selectionnée)
    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
    Sub CopierCollerImageLiaison1()
     
    Application.ScreenUpdating = False
     
    For Each sh In Sheets
            'For Each sh In MonClasseur.Sheets
                If sh.Name <> "Maquette" And sh.Name <> "liste" And sh.Name <> "Tableau de recup" Then
                    sh.select
                            '-------------------------------------------
                    Range("BO2:BQ5").Copy
                    Range("N8").Select
                    'Coller image avec liaison
                    ActiveSheet.Pictures.Paste(Link:=True).Select
                            '-------------------------------------------
                End If
    Next
     
    End Sub
    Mais je ne peux toujours pas tester cette instruction de 2007
    A+

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut
    c'est ok ca marche merci beaucoup

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/08/2023, 15h49
  2. [XL-2007] Copier coller des plages d'une sélection à la suite dans un autre tableau
    Par christinadeneva dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2015, 20h02
  3. Copier coller une feuille dans une autre feuille avec condition
    Par souhail72 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/03/2015, 10h52
  4. [Débutant] Copier/ coller d'une Row d'un Datagriview 2 dans Datagridview 1
    Par jeremyvb11 dans le forum VB.NET
    Réponses: 16
    Dernier message: 14/01/2013, 21h35
  5. MACRO - Copier une feuille dans toutes les feuilles (sauf 2)
    Par macto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/02/2011, 09h53

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