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 :

Problème de copier coller en vba à partir d'excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 71
    Points : 48
    Points
    48
    Par défaut Problème de copier coller en vba à partir d'excel
    Bonjour,

    j'ai fait un petit bout de code en vba qui concatène les feuille Excel d'un répertoire en une seul, la copie se passe bien, et j'ai le bon résultat en ce qui concerne les données, par contre j'ai des apparitions bizarre du genre cellule en couleur (j'arrive pas à vous mettre de photo pour mieux expliciter le problème) sachant que je ne modifie la couleur des cellules nul part ailleurs dans mon programme.
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    ' Consolider des données à partir de plusieurs feuilles
        Dim rep As String
        Dim wk As Workbook
        Dim ExisteFichier As Boolean
        Dim nomFic As String
        'Variable pour permettre de gerer les entetes
        Dim i As Integer
        i = 1
     
        'On Error GoTo Erreur_Fichier:
        Set XlBook = XlApp.Workbooks.Add
        Set XlSheet = XlBook.Worksheets(1)
     
     
     
        ' test de l'existence du fichier prestataire
         nomFic = ThisWorkbook.path & "\FichierPrestataireRes.xls"
         ExisteFichier = (Dir(nomFic) <> "")
         If ExisteFichier = True Then
            Kill nomFic
         End If
     
         XlBook.SaveAs ThisWorkbook.path & "\FichierPrestataireRes"
     
     
        Dim l As Long
        'Initialisations
        l = 5
        rep = ThisWorkbook.path & "\Prestataires\"
        s = Dir(rep)
     
     
        Do
            Set wk = CreateObject(rep & s)
        wk.Activate
     
        If i = 1 Then
        'recopier le masque du fichier
     
        Range("A3").Select
        Else
     
        'recopier les données à partir de la ligne 7 (modifier A7 par Ai si les données commencent à la ligne i)
        Range("A7").Select
        End If
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        Selection.Copy
        XlBook.Activate
     
        If i = 1 Then
        l = XlSheet.Range("A65356").End(xlUp).Row
        Else
        l = XlSheet.Range("A65356").End(xlUp).Row + 1
        End If
     
        'formatage de largeur de cellule pour affichage optimal
     
        XlSheet.Range(XlSheet.Cells(1, 1), XlSheet.Cells(1, 2)).ColumnWidth = 20
     
        XlSheet.Range(XlSheet.Cells(1, 4), XlSheet.Cells(1, 5)).ColumnWidth = 36
     
        XlSheet.Range(XlSheet.Cells(1, 6), XlSheet.Cells(1, 7)).ColumnWidth = 22
     
        XlSheet.Range(XlSheet.Cells(1, 8), XlSheet.Cells(1, 9)).ColumnWidth = 15
     
        XlSheet.Range("A" & l).Select
        XlSheet.Paste
        wk.Activate
        Application.CutCopyMode = False
            wk.Close savechanges:=False
     
            s = Dir
            i = i + 1
        Loop While s <> ""
          XlBook.Save
        XlApp.Quit
     
        Range("A1").Select
        Selection.Copy
        Range("A2").Select
        ActiveSheet.Paste
     
     
     
    'Erreur_Fichier:
        'MsgBox "Le Dossier Prestataire ne contient aucun fichier"
     
     
     
    'Fermeture des classeurs sauf le classeur actif
    'En enregistrant les modifications
     
    For Each XlBook In Workbooks
        If XlBook.Name <> ThisWorkbook.Name Then
            XlBook.Close True
        End If
    Next XlBook
    Si quelqu'un a une idée d'ou sa viens!?
    [IMG]D:\temp\res.jpeg[/IMG]
    Images attachées Images attachées  

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Faire un collage des valeurs seulement en remplaçant
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    L'apparition de couleurs est étrange. N'y a-t-il pas de Mise en forme conditionnelle ?

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Merci pour ta réponse,
    Ta solution ne marche pas pour moi si je fait exactement ce que tu m'as proposé je me retrouve avec un fichier en sortie qui est Vide.

    Et en réponse à ta question il n'y a aucune mise en forme conditionnelle, et il y a pas de copier coller de cellule ou de mise en forme ailleurs dans mon code

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    En faisant du pas à pas, peux-tu vérifier le résultat du collage ?

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Vu que je copie un bloc de chaque feuille je ne vois pas trop comment vérifier le collage en pas à pas (à part en regardant la feuille résultat à la fin de l’exécution). Tu peux être plus clair stp?

Discussions similaires

  1. [XL-2010] problème de copier coller en vba
    Par retulo dans le forum Excel
    Réponses: 6
    Dernier message: 23/06/2015, 20h39
  2. Problème de copier coller en VBA
    Par canounours dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/02/2015, 13h35
  3. Problème de copier/coller de valeur VBA
    Par astridlet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2010, 11h31
  4. Problème de copier coller macro VBA
    Par Piernod dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/11/2009, 18h56
  5. probléme de copier/coller
    Par lindette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2007, 14h39

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