Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 12h13   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
Par défaut Ajouter du code par le code

Bonjour,

Je ne comprends pas, je n'arrive pas à faire fonctionner ce code qui doit
être lancé sur clique bouton.
J'ai le message sur la ligne 29
Citation:
l'indice n'appartient pas à la sélection.
Code :
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
Dim Ws As Worksheet
    Dim Obj As OLEObject
    Dim laMacro As String
    Dim x As Integer
 
    'Ajout feuille
      Sheets.Add After:=Sheets("Bon de Commande")
      Set Ws = ActiveSheet
      Debug.Print "Feuille en cours etape 1" & Ws.Name
    'Ajout CommandButton dans la feuille
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    With Obj
        .Left = 50 'position horizontale
        .Top = 50 'position verticale
        .Width = 140 'largeur
        .Height = 30 'hauteur
        .Object.BackColor = RGB(235, 235, 200) 'Couleur de fond
        .Object.Caption = "Action"
    End With
 
    'Paramètres pour la création de la macro:
    '(suppression contenu cellules)
    laMacro = "Sub CommandButton1_Click()" & vbCrLf
    laMacro = laMacro & "Msgbox Ok" & vbCrLf
    laMacro = laMacro & "End Sub"
 
    'ActiveSheet.Name = "Fiche Tarifaire Valideur"
    Debug.Print "Feuille en cours etape 2" & Ws.Name
    With ActiveWorkbook.VBProject.VBComponents(Ws.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With
 
   ' ActiveSheet.Name = "Fiche Tarifaire Valideur"
 
End Sub
Bizarrement il m'ajoute des nouvelles feuilles comme demandé mais dont le nom est Feuil33 alors que j'ai supprimé des feuilles précédentes. ( Feuil31,Feuil32)

Merci d'avance de vos idées ?
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h17   #2
Membre régulier
 
Franck
Inscription : février 2008
Messages : 134
Détails du profil
Informations personnelles :
Nom : Franck
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 134
Points : 89
Points : 89
Par défaut feuilXX

Salut,

Lorsque tu ajoute une feuille à ton classeur, et que tu n'en définis pas le nom, le nom sera automatique et composé du mot "Feuil" (ou "Sheet" selon la langue) auquel on ajoute un chiffre donné par un compteur qui est incrémenté à chaque fois que tu ajoutes une feuille. Donc même si tu en efface une, le compteur te donnera de toute manière le N° suivant.
__________________
Pour ceux qui aiment l'art martial vietnamien, les photos du VietNam ou apprendre le Vietnamien venez visiter le site de notre asso "Noi Gia Vo Dao" :
http://ngvodao.free.fr

francky74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h38   #3
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Bonjour,
Remarque extraite de ce tutoriel :

Citation:
Remarque:
Lorsque vous devez spécifier le nom d'une feuille dans la propriété VBComponents, il s'agit du CodeName et pas le nom de l'onglet.
Par conséquent, essaye : [NON TESTE]
Code :
With ActiveWorkbook.VBProject.VBComponents(Ws.CodeName).CodeModule
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/09/2011, 13h48   #4
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
Super, ca marche. Deux heures que je m'arrache les cheveux sur le truc...
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h11.


 
 
 
 
Partenaires

Hébergement Web