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

VBA Access Discussion :

[VBA] Access-> Excel Format de cellule [À faire]


Sujet :

VBA Access

  1. #1
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut [VBA] Access-> Excel Format de cellule
    Bonjour

    j'utilise access pour la création d'un fichier excel, et les donnees s'affiche dans de nombreuse cellule. Dans une de mes tables se trouve une longue chaine de caractère, et je voudrai pouvoir apres chaque "=" faire un retour de ligne, et donc que la cellule et la ligne a laquelle elle appartient change de dimmension en hauteur.

    Si vous avez des idées je les prend toute, Merci a vous.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Essaie d'utiliser la propriété WrapText de ta cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      TonAppliExcel.TonWorkbook.TaWorkSheet.Range(TaCellule).WrapText=True
    Cette propriété est l'équivalent vb de 'Renvoyer à la ligne automatiquement'
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  3. #3
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    Merci, mais avec un renvoie a la ligne automatique je n'obtient pas ce que je veut.

    exemple:

    -------------------
    | Bla=Bla=Bla= | <= Renvoi a la ligne auto
    |Bla=Bla = |
    -------------------

    -------------------
    |Bla= | <= Ce que je veut
    |Bla= |
    |Bla= |
    -------------------

    J'espere que j'ai su m'expliquer.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Si tu as Access 2000 ou XP, tu dois pouvoir t'en sortir avec la fonction Replace et l'utilisation du caractère de renvoie à la ligne (chr(10) je crois).
    Au moment, d'inscrire ta chaine dans ta cellule excel, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TonappliExcel.TonWorkBook.TaWorkSheet.Range(TaCellule)=replace(TaChaine,"=","=" & chr(10))
    Je n'ai pas testé, mais je pense que ça pourrait résoudre ton problème.
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  5. #5
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    j'utilise cette commande pour copier mes cellules, et la cellule qui me pose probleme est dedans.
    Comment puis-je appliquer ta methode?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.TransferSpreadsheet acExport, 0, _
        "Valeur_Commentaire_Gamme_Temp", strTargetFile, False, "D15:D26"
    Merci de ton aide

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Ce que tu peux faire, avant d'effectuer ton opération d'exportation vers Excel, c'est lancer une requête qui va formater comme tu le souhaites le champs qui te gêne dans ton tableau temporaire. Je suppose que si les données stokées dans ton tableau temporaire ont une sale tête (des caractères un peu particuliers), ce n'est pas trop gênant (à moins que tu n'aies besoin de les afficher?).
    Donc tu effectues la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE [Valeur_Commentaire_Gamme_Temp] SET [TonChamp]=replace([TonChamp],""="",""="" & chr(10))
    Ensuite tu effectues ton transferspreadsheet.
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  7. #7
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    un erreur se produit sur la ligne de la requete

    "Fonction replace non défini"

    sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE Valeur_Commentaire_Gamme_Temp SET [Commentaire]=replace([Commentaire],""="",""="" & chr(10))"
    J'ai access 2000.

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Février 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 28
    Points : 139
    Points
    139
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE Valeur_Commentaire_Gamme_Temp SET [Commentaire]='" &  replace([Commentaire],""="",""="" & chr(10)) & "'"

  9. #9
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    Nvl erreur

    "impossible de trouver le champ auquel il fait reference"
    dans le code du post precedent

    Ma table est "Valeur_Commentaire_Gamme_Temp"
    et le champ est "Commentaire"

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Bon, ben faut croire qu'elle n'existe pas sous Access 2000 alors...
    Heu... on va devoir écrire une fonction qui fait la même chose alors.
    Ouvre un module dans lequel tu insères le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public function replace(Byval Chaine1 As string,Byval Chaine2 As string, Byval Chaine3 as string)
    Dim chainetemp as string
    Chainetemp=""
    While not(instr(Chaine1,Chaine2)=0)
       chainetemp=chainetemp & left(Chaine1,instr(Chaine1,Chaine2)-1) & Chaine3
       Chaine1=mid(Chaine1,instr(Chaine1,Chaine2)+1)
    wend
    replace=chainetemp
    End Function
    Je pense que ça devrait effectuer la même chose que replace...Mais il te faut utiliser la syntaxe que je t'ai donné et pas celle de Lucifer je pense.
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  11. #11
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    j'ai creer un module nommé Replace.

    et apres qu'est ce que je doit faire, car j'ai jamais utiliser les modules ?

    j'ai repris ta formule et il me dit "Replace" Non defini dans l'expression

    désoler je suis un .

    Merci enormement

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Ne nomme pas ton module replace, nomme le module ou fonctions...
    (je ne sais pas si Access ne va pas confondre ton module et ta fonction).De plus, j'ai oublié de préciser le type de Replace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public function replace(Byval Chaine1 As string,Byval Chaine2 As string, Byval Chaine3 as string) As String
    Dim chainetemp as string 
    Chainetemp="" 
    While not(instr(Chaine1,Chaine2)=0) 
       chainetemp=chainetemp & left(Chaine1,instr(Chaine1,Chaine2)-1) & Chaine3 
       Chaine1=mid(Chaine1,instr(Chaine1,Chaine2)+1) 
    wend 
    replace=chainetemp 
    End Function
    L'erreur il la mettait dans ton module?
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  13. #13
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    le code est passez mais, ca na pas marcher ma chaine de caratcere est dans un cellule, et les lettre les une a la suite des autres sans saut de lignes..... il affiche des petit carree blanc dans excel

  14. #14
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    En fait excel affiche des petit carree, et quand je clique sur la barre de formule en haut il disparaisse et sont interpreter comme des retour a la ligne.

    On tiens le bon bout.

    Comment dire a excel d'interpreter ces carrees directement sans a avoir a clicquez dessus. Le tout par Access

  15. #15
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Ah? je ne suis pas sûr du chr(10) que je t'ai proposé. (le caractère de saut de ligne est un de ceux compris entre 0 et 32 mais lequel?).
    Sinon, en te contentant de remplacer "=" par "= ", ça ne fait pas les sauts de lignes où tu souhaites? (avec l'option passer à la ligne automatiquement)
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  16. #16
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    YES !!!!! sa marche, mais car il ya toujours un mais, comment maitenant agrandir la cellule afin d'avoir toutes les informations qui s'affiche.

  17. #17
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    ça je crois pas que ce soit possible (c'est une option qui n'existe pas sous Excel pour autant que je sache). Tu devras le faire manuellement pour chaque colonne (dur!dur!).
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  18. #18
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par pitistef
    ça je crois pas que ce soit possible (c'est une option qui n'existe pas sous Excel pour autant que je sache). Tu devras le faire manuellement pour chaque colonne (dur!dur!).
    C'est pas tout à fait exact...
    La fonctionalité existe de 2 façons différentes.

    1/tu actives ShrinkToFit sur les cellules. Cela diminue la taille du texte pour qu'il rentre dans la largeur de la cellule.

    2/tu utilises AutoFit sur les colonnes/Lignes pour faire un ajustement automatique des tailles de ces dernières.

    Choisir en fonction du résultat attendu.
    Bien sûr, il vaut mieux faire un peu d'automation dans ce cas là !

  19. #19
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    ouais exact, j'avais jamais percuté que l'option autofit existait. Bon, c'est cool, je tâcherais de l'utiliser la prochaine fois que j'aurais de l'automation à faire.
    "I tried so hard and got so far
    But, in the end, it doesn't even matter"
    In the End, Linkin Park

  20. #20
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53

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

Discussions similaires

  1. [VBA-E]Nombre de formats de cellule différents trop élevé
    Par Patrice740 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 19/09/2008, 11h09
  2. Probleme VBA access somme Excel
    Par darkspoilt dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/05/2007, 10h35
  3. [VBA-E] Changer un format de cellule
    Par Squelet dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/02/2006, 17h36
  4. [excel] format de cellule
    Par alpachico dans le forum Excel
    Réponses: 5
    Dernier message: 28/07/2005, 10h09

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