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 :

Ouvrir un classeur Excel et lui attribuer un code VBA et convertir du texte en nombre


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 115
    Points : 74
    Points
    74
    Par défaut Ouvrir un classeur Excel et lui attribuer un code VBA et convertir du texte en nombre
    Bonjour à tous,

    Sur un logiciel de statistiques, j'exporte un résultat vers Excel, j'obtiens le fichier : stat.xls

    J'aimerai attribuer à ce classeur un code VBA (servant principalement à améliorer la mise en forme) mais je ne veux pas attribuer ce code directement dans le classeur stat.xls car ce fichier est écrasé à chaque exportation (il faudrait donc manuellement recopier le code dans le module VBA à chaque exportation)

    J'ai donc eu l'idée de créer une autre macro (fichier macro.xls) dans laquelle j'ai saisi le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
     
    Workbooks.Open Filename:="G:\......\stat.xls"
    Et ensuite j'ai recopié mon code VBA de mise en forme.
    Mais à partir de ce classeur, il ne fonctionne plus, et n'accepte pas notamment de coller une colonne : "Erreur d'exécution 1004 : Impossible de coller les informations car les zones Copier et de collage sont de tailles différentes"

    C'est ce code : qui ne fonctionne pas.

    Je ne sais pas comment régler mon problème.. Peut-être avez-vous une solution?

    Merci d'avance.

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Voici un code trouvé qq part

    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
    Option Explicit
     
    Sub RecopieModule()
     
    Dim NewM As Object, NewCode As String
     
    ' Stockage du code du module "Module1" du classeur maitre
    With ThisWorkbook.VBProject.VBComponents("Module2").CodeModule 'mettre le nom du module
         NewCode = .Lines(1, .CountOfLines)
    End With
     
    ' Ajout du module au 2e classeur 
    Set NewM = ActiveWorkbook.VBProject.VBComponents.Add(1)
    With ActiveWorkbook.VBProject.VBComponents(NewM.Name).CodeModule
        ' Le DeleteLines sert à éviter éviter d'avoir 2 fois Option Explicit
        ' si la déclaration explicite est cochée dans les préférences
        'sans effet si l'option n'est pas cochée
         .DeleteLines 1, .CountOfLines
         .AddFromString NewCode
    End With
    End Sub
     
    Sub Exportermodule()
    'on ouvre le classeur cible
    Workbooks.Open Filename:= _
            "g:\...\stat.xls"
    RecopieModule
    End Sub

  3. #3
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 115
    Points : 74
    Points
    74
    Par défaut
    Merci beaucoup!

    Dorénavant je cherche un code permettant de convertir du texte en nombre. Dans une colonne F j'ai des pourcentages : par exemple 3,5% mais Excel le concidère comme du texte, je cherche donc un code permettant de convertir ma colonne en nombre tout en gardant le symbole %.

  4. #4
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 115
    Points : 74
    Points
    74
    Par défaut
    Je me suis servie de l'enregistreur de macro pour trouver une solution.

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

Discussions similaires

  1. [XL-2007] Assigner une icone dans le ruban personnalisé de'excel et lui attribuer une macro VBA
    Par Romanuche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/07/2009, 10h44
  2. ouvrir un classeur excel via un code sql
    Par chamus dans le forum Access
    Réponses: 19
    Dernier message: 10/01/2007, 17h54
  3. ouvrir un classeur excel à partir d'un nom variable
    Par abu143 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/10/2006, 21h53
  4. [vba-excel] ouvrir des classeurs excel
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2006, 15h28
  5. [vb6]ouvrir un classeur excel
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/09/2006, 10h33

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