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 du .xls au .xlsb sans transformation des données [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 50
    Points : 37
    Points
    37
    Par défaut Copier/coller du .xls au .xlsb sans transformation des données
    Bonjour,

    Je vous écris car j'ai une macro (fichier .xlsb, classeur cible), dans laquelle je copie des données des differents fichiers .xls (classeur souce) dans des differents feuilles de mon classeur cible. Le soucis c'est que quand je fais le passage au fichier .xlsb celui prends en compte les données et les transforme, par exemple; dans la colonne A il existe un contrat s'appelant "SEP01" qui passe a être "01-sept", pouvez vous m'aider pour ne plus avoir ce souci?
    Le problème est plus grand lors que dans la colonne proche a celle si j'ai une date car il l’interprété comme format saxon et change le format date du "yy/mm/aa" au "mm/yy/aa" que pour les lignes qui ont l'indication du nom "SEP01" ou "MARS03".

    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
    'Etape 1, TraitementFichier "Etat_Loc_Finmois".
    'Déclaration variables génériques traitement fichier
    Dim t1 As Single
    Dim CL_overview As Workbook
    'Déclaration time pour compter temps de traitement macro
    t1 = Timer
    'Ajouter la feuille "RdContrat" pour sauvegarder inform a traiter
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "RduContrat"
    Worksheets("Overview").Activate
     
    'Déclarations nettoyage
    Application.DisplayAlerts = False   'option qui permet dire OUI aux alertes sur la perte de données excel
     
    Sheets("Rent").Range("A1:AG300").ClearContents
    Sheets("Rent").Range("A1:AG300").ClearFormats
    Sheets("Invoicing").Range("A1:AG200").ClearContents
    Sheets("Invoicing").Range("A1:AG300").ClearFormats
    Sheets("Cashinflow statement").Range("A1:AG200").ClearContents
    Sheets("Cashinflow statement").Range("A1:AG200").ClearFormats
    Sheets("Debtors").Range("A1:AF250").ClearContents
    Sheets("Debtors").Range("A1:AF250").ClearFormats
    Sheets("Aged Balance").Range("A1:R200").ClearContents
    Sheets("Aged Balance").Range("A1:R200").ClearFormats
    Sheets("Deposits").Range("A1:M200").ClearContents
    Sheets("Deposits").Range("A1:M200").ClearFormats
     
    'Déclaration variables génériques traitement fichiers
    Dim wb As Workbook, wb1 As Workbook
    Dim ws As Worksheet, ws1 As Worksheet
     
    Set wb = Workbooks.Open(Filename:=Range("K6"))
    Set ws = wb.Worksheets("Feuil1")
    'Ouverture fichier "Etat_Loc_Finmois"/ copier/coller
    Workbooks(1).Sheets("Rent").Range("A1:AF250").Value = ws.Range("A1:AF250").Value
    'ici fermeture du classeur sans enregistrer
    wb.Close SaveChanges:=False 'fermer le fichier texte sans sauvagarder changements

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Plutôt que d'utiliser la propriété Value, essaie d'utiliser la propriété Text :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(1).Sheets("Rent").Range("A1:AF250").Value = ws.Range("A1:AF250").Text
    EDIT : je viens d'essayer. Avec une cellule ça marche, mais avec une plage de cellules ça ne marche pas ... Il faudrait, donc, faire une boucle ... mais c'est long.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par riaolle Voir le message
    Bonjour,
    Plutôt que d'utiliser la propriété Value, essaie d'utiliser la propriété Text :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(1).Sheets("Rent").Range("A1:AF250").Value = ws.Range("A1:AF250").Text
    Bonjour, merci mais ça ne marche pas. Je continue a chercher aussi, mais aujourd’hui j'ai une flemme insupportable!

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Si tu mets ta colonne SEP01 en format texte avant d'y coller ton .value ?
    Pour les dates essaie en les copiant dans un tableau As Long avant, tu l'écris et tu fixes le format voulu ensuite.
    eric

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Je vous réécris car la solution ne fonctionne pas. J'ai fais les changements conseillées mais ça continue a me changer le format; Voici le code:

    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
    'Etape 1, TraitementFichier "Etat_Loc_Finmois".
    'Déclaration variables génériques traitement fichier
    Dim t1 As Single
    Dim CL_overview As Workbook
    'Déclaration time pour compter temps de traitement macro
    t1 = Timer
    'Ajouter la feuille "RdContrat" pour sauvegarder inform a traiter
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "RduContrat"
    Worksheets("Overview").Activate
     
    'Déclarations nettoyage
    Application.DisplayAlerts = False   'option qui permet dire OUI aux alertes sur la perte de données excel
     
    Sheets("Rent").Range("A1:AG300").ClearContents
    Sheets("Rent").Range("A1:AG300").NumberFormat = "@"
    Sheets("Rent").Range("A1:AG300").ClearFormats
     
     
    'Déclaration variables génériques traitement fichiers
    Dim wb As Workbook, wb1 As Workbook
    Dim ws As Worksheet, ws1 As Worksheet
     
    Set wb = Workbooks.Open(Filename:=Range("K6"))
    Set ws = wb.Worksheets("Feuil1")
    'Ouverture fichier "Etat_Loc_Finmois"/ copier/coller
    Workbooks(1).Sheets("Rent").Range("A1:AF250").Value = ws.Range("A1:AF250").Value
    'ici fermeture du classeur sans enregistrer
    wb.Close SaveChanges:=False 'fermer le fichier texte sans sauvagarder changements

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/07/2014, 14h09
  2. [AC-2007] fermeture d'un sous formulaire sans enregistrement des données
    Par Oliv'83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2009, 10h29
  3. Transformer des données en code PHP
    Par eric41 dans le forum Langage
    Réponses: 2
    Dernier message: 18/09/2008, 22h35
  4. Réponses: 0
    Dernier message: 16/09/2008, 13h28
  5. [ETL] Migration base/transformation des données
    Par tom_92 dans le forum Alimentation
    Réponses: 3
    Dernier message: 04/03/2007, 22h19

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