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 :

PB VBA : ecriture dans une feuille active => marche pas !


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut PB VBA : ecriture dans une feuille active => marche pas !
    Bonjour à tous et bonne année !!!

    Mon probleme n ayant pas de lien ac le titre de mon ancien sujet , j en reposte un. Lien ancien sujet

    Pour silkyroad :
    J ai remarqué que je pouvais accéder au contenu de mon tableau parce qu il etait declarer dans les declarations... lol
    Ce qui n est pas plus mal

    Cependant j ai toujours le meme probleme. L ecriture dans une feuille....

    Je stock des données dans un tableau contenant des commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim tabTriPharmacien() As Commande
     
    Private Type Commande
        Client As String
        NomProduit As String
        Atelier As String
        NumLot As String
        NbPalette As Integer
        DateFinFab As Date
        Pharmacien As String
    End Type
    Quand, dans mon code je créée une nouvelle feuille, je la renomme, la positionne et l'active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nomPharma = tabTriPharmacien(k).Pharmacien
    sheets.Add.Name = nomPharma
    sheets(nomPharma).Move after:=Worksheets(Worksheets.Count)
    Worksheets(nomPharma).Activate
    Ca crée bien les feuilles tt ensuite j'execute cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(1, 1), Cells(3, 3)).Value = "plop"
    Je n'arrive pas à garder la nouvelle feuille fraichement créée active pour pouvoir écrire dans celle-ci et pas dans une autre.
    Le probleme c est qu'il ne va pas ecrire dans la feuille activée/créée ci-dessus mais dans celle qui contient les appelles aux fonctions/procédures VBA.


    Eclairer moi je comprend pas le schimilimili... enfin le schmilblick

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Tu n'as pas à activer la feuille pour écrire dedans. Je ne sais pas exactement ce qui t'empêche de la garder active, mais ça n'a pas trop d'importance si tu utilises un code qui fait plus VBA.

    Quand tu veux accéder au Range, écris plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets(nomPharma)
        .Range(.Cells(1, 1), .Cells(3, 3)).Value = "plop"
    End With

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Oui je code plutot en VBA

    Merci de ton aide ça marche, je vais essayer d appliquer cette methode à ce que je veux faire pour la suite.

    Singular

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    En passant, tu peux enlever la ligne qui active la feuille...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(nomPharma).Activate

  5. #5
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    C est fait

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    N'oublies pas de marquer la discussion comme étant résolue!

    (bouton "Résolu" en bas de la discussion)

  7. #7
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    c est pas fini encore

    j aurai surment encore 2 ou 3 trucs à demander.

    Voila j ai reussi à resizer comme il faut les etiquettes.


    Le soucis, c est que si le nom du client (ou pour l exemple ci dessus du nom du produit), est trop grand, et bien on ne voit pas tout.
    Est il possile de de faire en sorte que dans la cellule, si il arrive au bout de la cellule qu il saute une ligne un peu comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nom de produit tres 
    tres tres long

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Dans le format de la cellule, coches l'option "Renvoyer à la ligne automatiquement" de l'onglet "Alignement".

  9. #9
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Ok mais en code VBA ça donne quoi ?

  10. #10
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    C est bon j ai trouvé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Worksheets(nomPharma)
        With .Range(.Cells(i + 3, j + 2), .Cells(i + 3, j + 4))
            .Font.Name = "Times New Roman"
            .Font.Size = 9
            .HorizontalAlignment = xlHAlignCenter
            .VerticalAlignment = xlVAlignCenter
            .Value = NomProduit
            .WrapText = True
        End With
    End With
    C est le WarpText qui gere le saut de ligne

    le probleme est désormais résolu

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

Discussions similaires

  1. [XL-2002] VBA :: Écrire dans une feuille cachée
    Par JonathanMQ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/10/2010, 22h02
  2. Réponses: 10
    Dernier message: 27/08/2010, 11h04
  3. Erreur dans une boucle et ne marche pas ?
    Par mitherkiller dans le forum SDL
    Réponses: 8
    Dernier message: 21/04/2007, 14h17
  4. [vba-e] Rendre Une Feuille Active
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/04/2007, 09h44
  5. [VBA-E]type de donnée range en vba utilisée dans une feuille
    Par Yoyo51 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/03/2006, 10h26

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