Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Soucis VBA sur Excel 2010

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Soucis VBA sur Excel 2010

n°2139110
tchauoui
Posté le 25-04-2012 à 22:08:17  profilanswer
 

Bonsoir à tous,  
 
 
J'ai de gros soucis et je suis vraiment mal avec mes macro sur Excel 2010
Ces macro ont initialement été développées sous Excel 2003
=> J'ai migrée sous Excel 2010 aujourd'hui
 
A l'ouverture de mon fichier .xlsm j'ai le message suivant :
"Erreur d'execution '9'
"L'indice n'appartient pas à la sélection'
=> J'ai uniquement fait un double clique pour ouvrir mon fichier
 
Quelqu'un a-t-il une idée,je suis ne période d'essai et mon bosse ne va pas aimer si je ne trouve pas de  solution  
 
 
Merci d'avance pour votre aide
 
 
 

mood
Publicité
Posté le 25-04-2012 à 22:08:17  profilanswer
 

n°2139111
tchauoui
Posté le 25-04-2012 à 22:11:31  profilanswer
 

Mon script est le suivant  
Private Sub Workbook_Open()
 
Dim i As Integer
For i = 1 To Worksheets.Count
 
If Worksheets(i).Name <> "Synthèse" Then
 
    With Worksheets(i)
       .EnableAutoFilter = True
        .EnableOutlining = True
        .protect Contents:=True, Password:="llcl", UserInterfaceOnly:=True
    End With
     
  Else
   
  Worksheets(i).unprotect Password:="llcl"
   
  End If
   
Next i
Application.Calculation = xlAutomatic
AddIns("Utilitaire d'analyse" ).Installed = True
End Sub
 
La macro bog à la dernière ligne
"AddIns("Utilitaire d'analyse" ).Installed = True"
=> Elle marchait parfaitement sous Excel 2003
=> cette commende n'exsite-t-elle plus sous Excel 2010 ?  
 
Merci pour votre aide, je vais y passer la nuit

n°2139131
vave
♫ Revolution is my name ♫ ★★
Posté le 26-04-2012 à 07:16:24  profilanswer
 

Bonjour,
essaye comme ça :

Code :
  1. Private Sub Workbook_Open()
  2. Dim i As Integer
  3. Dim cp As AddIn
  4. For i = 1 To Worksheets.Count
  5. If Worksheets(i).Name <> "Synthèse" Then
  6.     With Worksheets(i)
  7.        .EnableAutoFilter = True
  8.         .EnableOutlining = True
  9.         .protect Contents:=True, Password:="llcl", UserInterfaceOnly:=True
  10.     End With
  11.    
  12.   Else
  13.  
  14.   Worksheets(i).unprotect Password:="llcl"
  15.  
  16.   End If
  17.  
  18. Next i
  19. Application.Calculation = xlAutomatic
  20. For Each cp In AddIns
  21.   If UCase(cp.Name) = "ANALYS32.XLL" Then
  22.     cp.Installed = True
  23.   End If
  24. Next
  25. End Sub
 

Edit : si tu es en 64 bits, c'est peut-être ANALY64.XLL, à voir.


Message édité par vave le 26-04-2012 à 07:18:43

---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2139141
tchauoui
Posté le 26-04-2012 à 09:17:21  profilanswer
 

Ok
Je tente
Merci pour la proposition
=> Je te dis

n°2139143
tchauoui
Posté le 26-04-2012 à 09:29:32  profilanswer
 

Salut, ça marche  
=> Tu es un chef
=> j'aurai juste besoin de l'explication de la ligne "Dim cp As AddIn"
Que fait cette fonction stp car je ne comprends pas tout
Merci d'avance pour ton aide
 
 

n°2139150
vave
♫ Revolution is my name ♫ ★★
Posté le 26-04-2012 à 10:03:28  profilanswer
 

tchauoui a écrit :

Salut, ça marche  
=> Tu es un chef
=> j'aurai juste besoin de l'explication de la ligne "Dim cp As AddIn"
Que fait cette fonction stp car je ne comprends pas tout
Merci d'avance pour ton aide


Dim cp As AddIn => tu déclares une variable "complément"
 
ensuite : For Each cp In AddIns => tu parcoures la collection des compléments pour trouver celui que tu veux
Une fois que tu l'as trouvé, tu l'installes.
 
C'est une macro complémentaire.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2139158
tchauoui
Posté le 26-04-2012 à 10:31:37  profilanswer
 

Parfait => c'est très clair
Merci beaucoup !!
 
J'ai une autre macro qui met à jour des graphique à partir d'une source de données
=> La macro bog au niveau ce dessous et je n'arrive pas à la régler
 
Application.Run "ImportCells"
 
Voic le script
Sub Graphiques()
 
Rem feuille de graphes résultats: on raccourci les sélections de mensuel et linéarisé
    Sheets("Graphiques" ).Activate
 
Range("AH26:AS26,AH30:AS30,AH34:AS34,AH39:AS39,AH41:AS43" ).Select
Application.Run "ImportCells"
 
Call unprotect
'-------------------------------------------------------------------------------------------
Rem Chiffre d'Affaires Hors TGAP et Hors Concessions année n Mensuel 2010
graf = "Graphique 1"
serie = 2
lig = 22
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
Rem ROC mensuel année n
graf = "Graphique 2"
serie = 2
lig = 26
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
Rem ROC taux CA année n
graf = "Graphique 2"
serie = 4
lig = 41
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
 
Rem RNPG mensuel année n
graf = "Graphique 4"
serie = 5
lig = 30
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
Rem RNPG taux CA année n
graf = "Graphique 4"
serie = 1
lig = 42
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
 
Rem EBITDA mensuel année n
graf = "Graphique 3"
serie = 2
lig = 34
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
Rem EBITDA taux CA année n
graf = "Graphique 3"
serie = 4
lig = 43
coldeb = 34
Rem colonne décembre présente donc + nb mois
colfin = coldeb + Range("B2" ).Value - 1
test = fonction_bonne_selec(graf, serie, lig, coldeb, colfin)
 
'---------------------------------------------------------------------------------------------
Rem graphe CA
graf = "Graphique 1"
minus = "alexminusCA"
maxus = "alexmaxusCA"
exe = reduit_echelles(graf, minus, maxus)
 
Rem graphe ROC
graf = "Graphique 2"
minus = "alexminusROC"
maxus = "alexmaxusROC"
minussec = "alexminustauxROC"
maxussec = "alexmaxustauxROC"
exe = reduit_echelles(graf, minus, maxus)
exe = reduit_echelles_sec(graf, minussec, maxussec)
exe = ValeurGraph(graf)
 
Rem graphe EBITDA
graf = "Graphique 3"
minus = "alexminusEBITDA"
maxus = "alexmaxusEBITDA"
minussec = "alexminustauxEBITDA"
maxussec = "alexmaxustauxEBITDA"
exe = reduit_echelles(graf, minus, maxus)
exe = reduit_echelles_sec(graf, minussec, maxussec)
exe = ValeurGraph(graf)
 
Rem graphe RNPG
graf = "Graphique 4"
minus = "alexminusRNPG"
maxus = "alexmaxusRNPG"
minussec = "alexminustauxRNPG"
maxussec = "alexmaxustauxRNPG"
exe = reduit_echelles(graf, minus, maxus)
exe = reduit_echelles_sec(graf, minussec, maxussec)
exe = ValeurGraph(graf)
 
Call protect
 
Range("D12" ).Select
 
End Sub
 
 
Aurais-tu une idée stp ? :(

n°2139166
vave
♫ Revolution is my name ♫ ★★
Posté le 26-04-2012 à 10:43:45  profilanswer
 

Application.Run "ImportCells" appelle une macro ImportCells.
Si ça ne fonctionne pas, c'est qu'elle ne doit pas être dans le fichier.
 
Essaye de remplacer par Call ImportCells mais ça m'étonnerais que ça marche  [:spamafote]


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2139172
tchauoui
Posté le 26-04-2012 à 11:11:25  profilanswer
 

Ok, j'ai essayé
=> Effectivement ça ne marche pas
=> Il met le message d'erreur suivant  
"Erreur de compilation"
"Sub ou fonction non définie"
 
Si ça ne fonctionne pas, c'est qu'elle ne doit pas être dans le fichier
=> Qu'est ce qui n'est pas dans le fichier
=> Je ne comprends pas bien ce que cela veut dire
 
Merci pour ton aide

n°2139182
vave
♫ Revolution is my name ♫ ★★
Posté le 26-04-2012 à 11:25:33  profilanswer
 

vave a écrit :

Application.Run "ImportCells" appelle une macro ImportCells.
Si ça ne fonctionne pas, c'est qu'elle ne doit pas être dans le fichier.
 
Essaye de remplacer par Call ImportCells mais ça m'étonnerais que ça marche  [:spamafote]


Est-ce que dans ton fichier tu as une macro ImportCells ?

Code :
  1. Sub ImportCells()
  2. [...]
  3. End Sub


 
Tu n'as pas la possibilité de demander à celui qui a fait la macro ?


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
mood
Publicité
Posté le 26-04-2012 à 11:25:33  profilanswer
 

n°2139192
kiki29
Posté le 26-04-2012 à 12:20:47  profilanswer
 

Salut, une remarque sur l'utiltaire d'analyse :
 
L'utilitaire d'analyse ( ATP ) voit ses fonctions intégrées en natif à partir d'Office 2007
voir http://support.microsoft.com/kb/912719/en-us
ainsi que http://www.rondebruin.nl/atp.htm
et http://www.dicks-blog.com/archives [...] in-part-1/


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Soucis VBA sur Excel 2010

 

Sujets relatifs
maccro VBACopier/Coller sous-clef de registre VBA
Apprendre le VBAExcel ( macro pour pense bête) RESOLU
Programmation dans excel[excel] Gestion des heures supp.
Macro excel avec globbingExcel ( macro pour un pourcentage avec boucle) resolu
[VBA Outlook] Règle de mailslistes déroulantes liées sur access 2010
Plus de sujets relatifs à : Soucis VBA sur Excel 2010


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR