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 :

erreur macro variant empty


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Mai 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2022
    Messages : 2
    Par défaut erreur macro variant empty
    Bonjour,
    je réalise une macro pour générer automatiquement un power point, dont le modèle est dans un dossier à l'emplacement de la macro excel. Au lancement, le ppt se génère mais les titres de la première slide ne veulent pas se mettre à jour. Le fichier excel contant la macro possède un onglet "data" qui contient les données à coller dans le power point. à l'exécution, la macro s'arrête au code de la slide 1, indiquant la variable Data comme vide, mais pourtant il y a bien de la donnée sur les cellules pointées. ça s'arrête à ce bout de code: "Call Insert_texte(1, "entete_titre", Data.Cells(1, 12).Value)"
    Voici le code complet:

    Dim ppApp As PowerPoint.Application
    Dim ppShp As PowerPoint.Shape
    Dim ppPres As PowerPoint.Presentation
    Dim ppSlide As PowerPoint.Slide
    Dim excel_origine, chemin_acces, pptexport As String
    Dim pptmaquette, chemin_acces_maquette As String
    Dim Slide, nb_ligne As Integer
    Dim Type_generation, Nom_shape, Cells As String
    Dim titre1, titre2, titre3, titre4 As String


    Sub Generation()

    '------ Paramétrage des variables ------'

    'Stockage du nom de ce fichier
    excel_origine = ThisWorkbook.Name
    'Stockage du chemin d'accès de ce fichier
    chemin_acces = ThisWorkbook.Path
    'Stockage du chemin d'accès des maquettes qui sont dans un sous dossier nommé "Template"
    chemin_acces_maquette = ThisWorkbook.Path & "\Template"

    '------ Récuperation des paramètres ------'

    '- Le nom du nouveau template
    pptmaquette = "Snapshot maquette bureaux.pptx"
    '- Le nom du fichier d'enregistrement à utiliser
    pptexport = WIP.Cells(10, 3)

    'Ouverture de la maquette powerpoint
    Set ppApp = New PowerPoint.Application
    Set ppPres = ppApp.Presentations.Open(chemin_acces_maquette & pptmaquette)
    'ppApp.Presentations.Open chemin_acces_maquette & pptmaquette

    'Enresgitrement de la maquette powerpoint sous son nom de MarketView
    ppPres.SaveAs chemin_acces & "" & pptexport, ppSaveAsOpenXMLPresentation



    'SLIDE 1

    '--- Récapitulatif du MV en cours de génération
    ppPres.Slides(1).Select
    Call Insert_texte(1, "entete_titre", Data.Cells(1, 12).Value)
    Call Insert_texte(1, "recap_titre", Data.Cells(1, 11).Value)
    Call Insert_texte(1, "titre_ind", Data.Cells(2, 11).Value)

    '--- Indicateur de demande placée
    Call Insert_texte(1, "DP_Ind", Data.Cells(9, 3).Value)
    '--- Indicateur de loyer prime neuf
    Call Insert_texte(1, "loyerneuf_Ind", Data.Cells(9, 8).Value)
    '--- Indicateur de loyer prime seconde main
    Call Insert_texte(1, "loyerancien_Ind", Data.Cells(9, 13).Value)
    '--- Indicateur d'offre immédiate
    Call Insert_texte(1, "OI_Ind", Data.Cells(9, 18).Value)
    '--- Indicateur de taux de vacance
    Call Insert_texte(1, "txvacance_Ind", Data.Cells(9, 23).Value)
    '--- Indicateur d'offre future certaine neuve
    Call Insert_texte(1, "Ofuture_Ind", Data.Cells(9, 28).Value)

    MsgBox ("La génération est terminée")

    'Réinitilisation de la page de lancement
    'Generation.Cells(8, 5) = ""
    'Generation.Cells(10, 5) = ""
    'Generation.Cells(12, 5) = ""

    'Enresgitrement et fermeture du classeur Excel
    ThisWorkbook.Save
    'ThisWorkbook.Close
    If Type_generation <> "Aucun" Then
    With ppApp
    .Quit
    End With
    End If
    Excel.Application.Quit

    End Sub

    Si vous avez une idée de ce qu'il faudrait modifier svp? Par avance un grand merci pour votre aide Test Latifa_BUR_Données_Graphiques_Tableaux_Listings.xlsmTest Latifa_BUR_Données_Graphiques_Tableaux_Listings.xlsmTest Latifa_BUR_Données_Graphiques_Tableaux_Listings.xlsm

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si "Data" est le nom de ton onglet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Data As Worksheet
    Set Data = Thisworkbook.Worksheets("Data")
     
    Call Insert_texte(1, "entete_titre", Data.Cells(1, 12).Value)
    ' et la suite du code

Discussions similaires

  1. Excel VBA > Message d'erreur " Macro desactivés "
    Par alec-- dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/06/2007, 13h58
  2. [ADODB] erreur Query was empty
    Par Invité dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/01/2007, 20h18
  3. Message d'erreur directory not empty
    Par le69 dans le forum Langage
    Réponses: 9
    Dernier message: 26/05/2006, 18h04
  4. [VBA-E]contenu d'une cellule gestion erreur macro
    Par matou_aouh dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/03/2006, 10h18
  5. [Dev-Cpp] Erreur "Macro Names Must be Identifiers"
    Par TheRedLed dans le forum Dev-C++
    Réponses: 6
    Dernier message: 07/06/2005, 20h12

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