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 une feuille - problème 255 caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut Copier une feuille - problème 255 caractères
    Bonjour,

    Je dois importer des feuilles de classeur depuis un fichier externe rempli par d'autres personnes. Certaines cellules ont plus de 255 caractères (jamais les mêmes forcément).
    Je cherche donc une méthode pour détecter ces cellules, afin de stocker leur valeur quelque part, puis importer la feuille dans mon classeur, et enfin recopier la valeur stockée au bon endroit dans la feuille.
    A priori trois questions donc :
    - quelqu'un a-t-il une autre solution que la mienne (je la trouve moche ) ?
    - comment détecter ces cellules à + de 255 caractères ?
    - comment éviter le message d'erreur qui apparaît lors du transfert ? ("certaines cellules de la feuille que vous copiez ont plus de 255 caractères, on a être obligé d'en tronçonner quelques uns au passage"). (Je le trouve moche aussi ce message)

    Cwain

  2. #2
    Membre éprouvé Avatar de zebulon2212
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Par défaut
    bon donc je ne sais pas quel solution tu as utilisé, mais bon dans un meme cas de figure je me suis servi de ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Selection.Copy 'pour copier tes données dans le presse papier
                  'tu peux meme prendre plusieures cellules 
                  'j'en selectionnais un peu plus d'un miller a chaque fois
    ActiveSheet.Paste 'pour coller ton presse papier a l'endroit ou tu te trouve
    Application.CutCopyMode = False 'pour vider le presse papier
    Enfin voila si ca peut t'aider...

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    quelle est le format de tes feuilles sources ..? qu'elle est ta version d'excel ..? ( sous 2003, j'arrive pas à avoir le message..!)

  4. #4
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Bbil>
    Ma version d'excel : 2003
    pour voir ce que ça donne, tu fais déplacer/copier un onglet contenant une cellule de plus de 255 caractères vers un nouveau classeur, et c à ce moment là
    Bon en plus ya un autre ptit truc sympa à faire c'est que ya des boutons et des macros associées qu'il faut que je récupère aussi

    zebulon> effectivement ça marche comme ça, même si je sélectionne toutes les cellules de la feuille, un autre souci, c'est le truc des boutons/macros associées comme je dis ci-dessus

    En résumé : problème pour déplacer une feuille qui contient à la fois une cellule de plus de 255 caractères de position aléatoire et des Contrôles avec macros assoiées

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    je connaissai pas ce probléme de 255 caractéres ( mais bon à quoi cela sert 255 dans une cellule ..?)

    tiens essai ce 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
     
    Sub CopyFeuille()
    Dim Wks As Worksheet
    Dim wkd As Worksheet
    Dim c As Range
    Set Wks = Sheets("Feuil1") 'Feuille à Copier
    Wks.Copy 'Copie à modifier suivant ou on ve copier ici c'est ds nouveau classeur
    Set wkd = ActiveSheet ' oups je sais pas faire autrement ..?
    For Each c In Wks.UsedRange
     If Len(c) > 255 Then
      wkd.Range(c.Address) = c
     End If
    Next
    End Sub

  6. #6
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    non non j'ai bien excel 2003 et je n'ai pas de souci avec copier/coller une cellule de + de 255 caractères, c'est plutôt copier/coller une feuille comprenant une cellule de plus de 255 caractères

    Pour mon histoire de contrôle, je suis en train de regarder pour faire un mix de la solution d'Ouskel'n'or :
    - copier la feuille tant pis pour les + de 255c, mais ya les controles
    - copier les cellules (format et valeurs) dans la feuille obtenue (les + de 255c sont ok)

    je vous dis ça

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu as mal regardé le code copy la feuille compléte avec les boutons (s'il y a ...) et ensuite copie (à nouveau mais en entier ) les cellules de + de 255 caractéres..

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je suppose (comme tu parles de cellules) que le fichier dont tu recopies les cellules, est un classeur Excel d'une version antérieure...
    Tu crées deux feuilles pour copier les données.
    La première dans laquelle tu vas copier toutes tes cellules sans t'occuper de la longueur des cellules
    Dans la seconde feuille, tu ne vas stocker aux adresses correspondantes, que les bouts de cellules dépassant les 255 caractères.
    Ensuite, tu balaies ta plage du fichier d'origine, et tu stockes les bouts de cellules dans la seconde feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For  = NoLigne to NbreLignes
         For j = NoColonne to NbreColonnes
               If len(cells(NoLigne, NoColonne).value) > 255 then
                    WorkBooks("FichierDestination").Worksheets("Feuil2").cells(NoLigne, _
                    NoColonne).value = Right(cells(NoLigne, NoColonne).value, _
                    Len(cells(NoLigne, NoColonne).value) - 255)
              Endif
         Next NoColonne 
    Next NoLigne
    Maintenant, si tu as des difficultés pour connaître le nombre de lignes ou de colonnes, le sujet a été traité plus de mille fois sur le forum

    Pour récupérer les données, il te reste à concaténer ce qu'il y a à la même adresse sur feuil1 et feuil2
    Juste une idée
    Tu dis

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

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 13h51
  2. Problème pour copier une feuille
    Par bentor22 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/04/2013, 13h12
  3. Comment copier une feuille EXCEL sous ACCESS?
    Par PAULOM dans le forum Access
    Réponses: 7
    Dernier message: 28/04/2006, 11h01
  4. copier une feuille dans un nouveau doc excel
    Par alkmehd dans le forum Access
    Réponses: 1
    Dernier message: 24/09/2005, 12h01
  5. [EXCEL] copier une feuille sans changer les liaisons
    Par DidRocks dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 14h29

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