Soucis VBA sur Excel 2010

Soucis VBA sur Excel 2010 - VB/VBA/VBS - Programmation

Marsh Posté le 25-04-2012 à 22:08:17    

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
 
 
 

Reply

Marsh Posté le 25-04-2012 à 22:08:17   

Reply

Marsh Posté le 25-04-2012 à 22:11:31    

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

Reply

Marsh Posté le 26-04-2012 à 07:16:24    

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
Reply

Marsh Posté le 26-04-2012 à 09:17:21    

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

Reply

Marsh Posté le 26-04-2012 à 09:29:32    

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
 
 

Reply

Marsh Posté le 26-04-2012 à 10:03:28    

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
Reply

Marsh Posté le 26-04-2012 à 10:31:37    

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 ? :(

Reply

Marsh Posté le 26-04-2012 à 10:43:45    

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
Reply

Marsh Posté le 26-04-2012 à 11:11:25    

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

Reply

Marsh Posté le 26-04-2012 à 11:25:33    

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
Reply

Marsh Posté le 26-04-2012 à 11:25:33   

Reply

Marsh Posté le 26-04-2012 à 12:20:47    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed