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 :

Problème avec code création d'un dynamique [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Par défaut Problème avec code création d'un dynamique
    Bonsoir le forum

    En pièce jointe je fournis un fichier qui contient un code me permettant de créer une feuille en y insérant un bouton
    à qui je voudrais affecter une macro

    La ligne 21 me génère un message d'erreur "Erreur d'exécution '9': l'indice n'appartient pas à la sélection"

    je ne comprends pas le PB

    Si une ou plusieurs âmes charitables pouvaient y regarder...

    D'avance merci pour votre aide et pour votre disponibilité
    Fichiers attachés Fichiers attachés

  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 tu montrais le code, plutôt que de mettre le fichier en pièce jointe (contraire aux règles du forum), je suis persuadé que des âmes charitables tu en trouveras.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Par défaut
    Oups pardon, je pensais qu'en mettant le fichier se serait plus pratique,

    voici le code:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    Option Explicit
    Public PS As Worksheet
    Public MDI As Worksheet
    Public Tablo()
    
    Sub Onglet()
    Dim Ligne As Long
    Dim Indice As Integer
    Dim Ws As Worksheet, Obj As OLEObject
    Dim laMacro As String
    Dim x As String
    
    Set Ws = Sheets.Add
    Ws.Name = "impression"
    
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    
       With Obj
    .Left = 650 'Left position bouton par rapport au bord gauche de la feuille
    .Top = 50 'Top position bouton par rapport au haut de la feuille
    .Width = 190 'Width largeur bouton
    .Height = 30 'Height hauteur bouton
    
    .Object.Caption = "Choix des feuilles à imprimer"
    End With
    
        With Application.VBE.ActiveVBProject.VBComponents("impression").CodeModule
            x = .CountOfLines
            .InsertLines x + 1, "Sub CommandButton1_Click()" & vbLf
            .InsertLines x + 2, "UserForm111.show" & vbLf
            .InsertLines x + 3, "End Sub"
        End With
        
        For Each Ws In Sheets(Array("impression"))
            With Ws
                .Columns(1).ColumnWidth = 1.57
                .Columns(2).ColumnWidth = 7.71
                .Columns(3).ColumnWidth = 13.71
                .Columns(4).ColumnWidth = 10.71
                .Columns(5).ColumnWidth = 10.71
                .Columns(6).ColumnWidth = 10.71
                .Columns(7).ColumnWidth = 1.71
                .Columns(8).ColumnWidth = 19.71
            End With
        Next
       
    Set PS = Sheets("Photo situation PB")
    Set MDI = Sheets("impression")
     
    'Création de l'entête de la feuille d'impression
    MDI.Activate
    PS.Range("A1:I5").Copy Range("A1")
    
    'Création de la liste des PB
      For Ligne = 7 To 750 Step 24
        If PS.Cells(Ligne, "C").Value <> "" Then
          Indice = Indice + 1
          ReDim Preserve Tablo(1 To 2, 1 To Indice)
          Tablo(1, Indice) = PS.Cells(Ligne, "C").Value
          Tablo(2, Indice) = Ligne
    
        End If
      Next Ligne
     
      PS.Select
      
    'Lancement de la séléction
      UserForm1111.Show 0
    End Sub
    avec en rouge la ligne qui génère le "beug"

    mille excuses et merci pour votre aide

  4. #4
    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
    sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Application.VBE.ActiveVBProject.VBComponents("impression").CodeModule
    Tu fais référence au nom de la feuille pour pointer sur son module
    ce n'est pas le "Name" de la feuille qu'on doit utiliser (le nom qu'on voit dans Excel) mais c'est le "CodeName" de la feuille (le second nom de feuille, qu'on voit uniquement dans le VBE)

    pour changer le CodeName de ta feuille, met ça à la ligne 16 de ton code et dis moi si c'est ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ws.Parent.VBProject.VBComponents(Ws.CodeName).Properties("_CodeName") = "impression"
    attention à prévoir un gestionnaire d'erreur au cas où le CodeName existe déjà

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Par défaut
    Ok super ça fonctionne, j'ai bien la macro qui se créée, mais du coups le lancement de mon "UserForm" à la fin du code déconne.

    Il se lance et disparaît de suite, mais ça c'est un autre PB, donc je clôture ce post et je reviendrai si besoin

    Merci beaucoup pour ton aide et ta disponibilité

    Merci le forum

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bon j'ai regardé ton fichier
    pourais tu me dire ce qui t a passer par la tete pour faire le sheet impression en dynamique
    a quoi ca sert

    tu clique sur un bouton qui créé un sheets sur le quel tu créé du code et le quel tu crée un bouton sur le quel tu clique pour enfin afficher un userform avec une listebox dans le quel il y a les noms de sheets

    rien que de résumé j'en ai mal a la tète

    conception du classeur complètement a revoir

    je parle même pas du code qui je suis sur même sil fonctionne aujourd'hui en boitant plombera demain
    j'essai meme pas de corriger ca foutrait mon app en l'air

    surtout que déjà dès que je l'ai ouvert il a planté
    références manquante
    une partie a été supprimer par excel lui même au démarrage pour pouvoir démarrer enfin bref

    je pense que l'on va te voir longtemps sur ce sujet si tu continue avec ce fichier
    mille excuse pour ma franchise un peu fulgurante
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Par défaut
    Bonsoir Patrick

    Si ce n'était que de moi il y a longtemps que j'aurai tous refais, mais non c'est indépandant de ma volonté,
    à moins que l'on me trouve un code qui va s'adapter pour un impression en premier de certaines photos, et ensuite de certaine feuilles...

    Non maintenant ça fonctionne comme j'en ai besoin, je ne viendrais plus vous embêter avec ce fichier, je vais installer le code dans un
    classeur personnel de macro, afin de pouvoir imprimer au besoin ce que l'on me demandera.

    Mon code fonctionne, mais merci de t'être pencher sur mon problème.

    Je suis plus embêter avec l'autre sujet que j'ai poster hier (http://www.developpez.net/forums/d15...mation-boucle/) car là ça m'est beaucoup plus indispensable

    Merci pour ta franchise

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2014, 20h04
  2. Problème avec PtInRegion et un tableau dynamique
    Par mduse dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2005, 09h29
  3. probléme avec la création de table Mysql 5
    Par developpeur_mehdi dans le forum Outils
    Réponses: 3
    Dernier message: 19/10/2005, 19h08
  4. Problème avec la création d'un composant
    Par jeromelef dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/10/2005, 00h51
  5. Réponses: 2
    Dernier message: 29/03/2004, 18h29

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