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 :

Copie/Colle depuis VB6 [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 22
    Par défaut Copie/Colle depuis VB6
    Bonjour à tous.

    Je suis actuellement entrain de devellopé une interface en VB6 qui permet de choisit un "Procès Verbal" à éditer sous excel, ce PV est stocké sur une BDD j'y récupère les données je les traites et je les colles sur une trame excel que je sauvegarde apèrs.

    J'ai des problèmes avec mes copie/colle

    Voici mon code pour la déclaration d'excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application ExcelDim
    Dim wbExcel As Excel.Workbook 'Classeur ExcelDim
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application
    Set appExcel = New Excel.Application
     
    'Récupération de la trame
    Set wbExcel = appExcel.Workbooks.Open("P:\Maintenance\Gruhn Louis\Trame\Trame.xls")
     
    'Récupération de la feuille N°1
    Set wsExcel = wbExcel.Sheets(1)
    Voici le code recherchant la données dans la base de données et ooù je défini la cellule où cette données vas être sauvegarder (J'ai environ 30* ce code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            'Validation Serrage Bride
            TestEtat = rst("ValidationSerrageBride") 'recherche dans la BDD
            Range = "F9"
            Affichage0a3
    Et voici la fonction qui copie/colle et qui plante =D

    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
    Public Sub Affichage0a3() 'Procedure qui définit la valeur à affecter pour les états
    Select Case TestEtat
    Case 0
        wsExcel.Range("B80").Copy _
        Destination:=wsExcel.Range(Range)
    Case 1
        wsExcel.Range("B82").Copy _
        Destination:=wsExcel.Range(Range)
    Case 2
        wsExcel.Range("B84").Copy _
        Destination:=wsExcel.Range(Range)
    Case 3
        wsExcel.Range("B86").Copy _
        Destination:=wsExcel.Range(Range)
    Case Else
            Etat = ""
    End Select
    Range = ""
    End Sub
    Le bug se situe entre les case sur mon copie/colle. c'est l'erreur "object requirred"



    Donc voila le problème je vous remercie de m'avoir lu, et j'espère que vous pourrez m'aidé !!

    Louis,

  2. #2
    Membre éclairé
    Homme Profil pro
    Chargé d'Etudes Statistiques
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'Etudes Statistiques
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Par défaut
    "Range" est un mot réservé pour définir une plage cellules.
    Tu devrais trouver un autre nom de variable pour écrire:
    plutôt.

    Déclare le comme Range aussi, cela permet d'éviter les erreurs.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 22
    Par défaut
    Merci pour la réponse,

    J'ai modifié mais sa ne résoud pas mon problème.

    Et quand tu dit de déclarer R entant que "Range je dois écrire :

    ? car il ne me reconnait pas le "Range" comme un type de variable

  4. #4
    Membre éclairé
    Homme Profil pro
    Chargé d'Etudes Statistiques
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'Etudes Statistiques
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Par défaut
    Désolé je n'ai pas été assez précis, fais une déclaration normale.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (Public) Dim R as Range
    Mais je te conseille de faire cette déclaration au début de ta procédure. Le Public est facultatif. Tout dépend si tu auras besoin de cette variable dans d'autres procédures.
    En tout cas en VBA pour Excel, Range est bien un type de variable, j'en suis sûr et certain je l'utilise tous les jours, qu'utilises-tu pour coder ?

    C'est bizarre, sinon je ne vois pas d'où vient le problème.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 22
    Par défaut
    Enfait je programme sous VB6 et j'utilise excel pour génerer le PV.

    Je ne programme pas directement dans les macros VBA (bien que je pense que ce soit similaire) je vais réessayer.


    Edit : J'ai éssayé il me dit "variable not defined or with block not set" :s

    J'ai compris l'utilisation du Range (il faut faire un Set :o)

    Mais voila j'ai toujours ce problème : "object required" voici mon code modifier.


    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
    Public Sub Affichage0a3() 'Procedure qui définit la valeur à affecter pour les états
    Select Case TestEtat
    Case 0
        wsExcel.Range("B80").Copy _
        Destination:=wsExcel.R
    Case 1
        wsExcel.Range("B82").Copy _
        Destination:=wsExcel.R
    Case 2
        wsExcel.Range("B84").Copy _
        Destination:=wsExcel.R
    Case 3
        wsExcel.Range("B86").Copy _
        Destination:=wsExcel.R
    Case Else
            Etat = ""
    End Select
    Range = ""
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            'Validation Serrage Bride
            TestEtat = rst("ValidationSerrageBride") 'recherche dans la BDD
            Set R = Range("F9")
            Affichage0a3

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 22
    Par défaut
    Problème résolu,

    le problème Object required venait que j'utilisait excel dans une "sous procédure", j'ai donc déclaré excel en private (au lieu de dim).

    Puis j'avais oublié à la ligne le wsExcel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set R = wsExcel.range("XX")
    Merci pour votre aide !!

    Bonnes fêtes à tous

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

Discussions similaires

  1. Depuis VB6 Tester si Excel est ouvert.
    Par pcvesoul dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/01/2006, 04h01
  2. [VCL] Copié/collé d'un calque dans un TImgView
    Par dacid dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/12/2005, 11h36
  3. Table Access : ajout d'un champ depuis VB6
    Par pcvesoul dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/09/2005, 09h14
  4. Erreur mise en couleur d'une colonne excel depuis VB6
    Par pcvesoul dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 21/09/2005, 15h52
  5. Impression d'état CR10 depuis VB6
    Par mcrocher dans le forum SDK
    Réponses: 1
    Dernier message: 07/09/2005, 09h31

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