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 copie de format vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Par défaut Problème copie de format vba
    Bonjour,

    J'effectue la copie d'un fichier excel vers un autre, mais j'ai un problème le format des cellules n'est pas copié avec par exemple pour les dates, il apparaît des nombres dans certaines des cellules.

    Voici ce que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
    EspaceTravail.Activate
    DestCell.PasteSpecial Paste:=xlValues
    j'ai aussi essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
    EspaceTravail.Activate
    DestCell.PasteSpecial Paste:=xlFormats
    mais il ne prend pas que les formats et pas les formules et cette fonction ne fonctionne pas sur excel 2007 alors que Excel 2007 est la version utilisée au boulot.

    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    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 : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu ne dis pas ce que tu veux comme résultat final.
    Ce que tu décris est normal. En utilisant le collage spécial - Valeur, tu ne copies que les valeurs et pas le format. Si tu utilisais l'enregistreur de macros tu l'aurais constaté par toi même.
    Pour copier et coller Format+Formules, c'est la méthode Copy qu'il faut utiliser et si tu souhaites que les formules soient remplacées par leurs résultats, tu peux utiliser la propriété Value (Cellules.Value = Cellules.Value)
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub CopyRange()
     Dim rngSource As Range, rngTarget As Range
     With ThisWorkbook
      Set rngSource = .Worksheets("db").Range("A1").CurrentRegion
      Set rngTarget = .Worksheets("Export").Range("A1")
     End With
     rngSource.Copy rngTarget
     With rngTarget.CurrentRegion
     .Value = .Value  ' Ne conserve que les valeurs
     End With
    End Sub
    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

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Par défaut
    Bonjour,

    Merci pour votre réponse, je fais l'import de la première feuille d'un fichier excel vers le classeur dans lequel j'active la macro parce que je ne connais pas forcément la feuille dans laquelle se trouve les données. donc votre code ne s'applique pas vraiment dans ce cas ? J'aimerais copier à la fois les valeurs et les formats, voici mon code :

    'IMPORTATION D'UNE SEULE FEUILLE DE DONNEES
    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
     
    Sub ImportTextFile()
     
    Dim EspaceTravail As Workbook, SourceBook As Workbook
    Dim DestCell As Range
    Dim RetVal As Boolean
    Dim Chemin As String
     
    ' désactiver le rafraichissement de l'écran avant la macro
    Application.ScreenUpdating = False
     
    'chemin en relatif du dossier ou se trouve tes données
    Chemin = "C:\PRIVE"
    'ou en hard
    'Chemin = "C:\...\dossier"
     
    ' Active l'espace de travail et la cellule où j'aimerais copier les données
    Set EspaceTravail = ActiveWorkbook
    Set DestCell = Range("A1") 'active la cellule où j'aimerais copier les données
     
    'Ouvre la boîte de dialogue
    RetVal = Application.Dialogs(xlDialogOpen).Show(Chemin & "\.*")
     
    If RetVal = False Then Exit Sub
     
    ' Set an object variable for the workbook containing the text file.
    Set SourceBook = ActiveWorkbook
     
    ' Copie entièrement la feuille
    Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
     
     
    'Active le fichier de destination et faire un collage special
    EspaceTravail.Activate
    DestCell.PasteSpecial Paste:=xlPasteFormats
     
    ' Close the book containing the text file.
    SourceBook.Close False
     
    Application.ScreenUpdating = True
     
    End Sub
    Merci pour votre aide

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    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 : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Merci pour votre réponse, je fais l'import de la première feuille d'un fichier excel vers le classeur dans lequel j'active la macro parce que je ne connais pas forcément la feuille dans laquelle se trouve les données. donc votre code ne s'applique pas vraiment dans ce cas ? J'aimerais copier à la fois les valeurs et les formats, voici mon code :
    Il suffit d'adapter le code que j'ai publié, il me semble que ce n'est pas très compliqué.
    Il y a deux variables objets de type Range (rngSource et RngTarget). Pour mon exemple, elles ont le même classeur parent mais deux feuilles parentes différentes. Il suffit donc de modifier les classeurs. Soit Workbooks(NomClasseur) au lieu de ThisWorkbook
    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

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Par défaut
    Bonjour,

    Merci pour votre aide, j'ai résolu le problème avec ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
          xlNone, SkipBlanks:=False, Transpose:=False
    Cordialement

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

Discussions similaires

  1. [XL-2013] Problème copie données calulées dans tableau en VBA
    Par joel50 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/10/2014, 08h47
  2. [XL-2007] Problème de copié collé en VBA sous Excel
    Par cotmar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/04/2011, 22h21
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. Problème avec un format nombre en VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/11/2008, 10h44
  5. problème HD ntfs formaté sous WinXP avec win2000
    Par kalminou dans le forum Windows XP
    Réponses: 7
    Dernier message: 27/08/2003, 17h45

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