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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Erreur de compilation...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur de compilation...

n°1736134
scaryfan
Apple Inside
Posté le 23-05-2008 à 11:51:16  profilanswer
 

Salut à tous !
 
J'ai un soucis avec un message d'erreur.
"Erreur de compilation - Déclaration existante dans la portée en cours".
J'ai juste déplacé un code sans le modifier en le plaçant entre un IF et ELSE et END IF...
 
Quel est mon problème ?

mood
Publicité
Posté le 23-05-2008 à 11:51:16  profilanswer
 

n°1736159
Xxxaaavvv
Posté le 23-05-2008 à 12:10:06  profilanswer
 

tu a déclarer une variable en trop
 
genre t'as faite 2 fois :
Dim toto as string

n°1736199
scaryfan
Apple Inside
Posté le 23-05-2008 à 13:13:51  profilanswer
 

Xxxaaavvv a écrit :

tu a déclarer une variable en trop
 
genre t'as faite 2 fois :
Dim toto as string


 
Salut Xxxaaavvv !!!
 
En fait, voici mon code :
 

Code :
  1. ActiveCell.Offset(0, -1).Select
  2.                
  3.             If ActiveCell.Value = "" Then
  4.            
  5.                 Selection.Value = "V"
  6.                
  7.                 RFVALIDE.Show
  8.    
  9.                 Dim OutlApp2 As New Outlook.Application
  10.                     Dim OutlMail2 As MailItem
  11.                     Set OutlApp2 = New Outlook.Application
  12.                     Set OutlMail2 = OutlApp2.CreateItem(olMailItem)
  13.                     With OutlMail2
  14.                    
  15.                         .To = "moi@masociete.com"
  16.                         .Subject = CODESOCIETE & " - Validation du résultat fiscal"
  17.                         .Body = "Le résultat fiscal de la société " & CODESOCIETE & " vient d'être saisi par " & IDENTIFIANT
  18.                         .Send
  19.                    
  20.                     End With
  21.            
  22.             Else
  23.    
  24.                 Dim OutlApp2 As New Outlook.Application
  25.                     Dim OutlMail2 As MailItem
  26.                     Set OutlApp2 = New Outlook.Application
  27.                     Set OutlMail2 = OutlApp2.CreateItem(olMailItem)
  28.                     With OutlMail2
  29.                    
  30.                         .To = "moi@masociete.com"
  31.                         .Subject = CODESOCIETE & " - Modification du résultat fiscal"
  32.                         .Body = "Le résultat fiscal de la société " & CODESOCIETE & " vient d'être saisi par " & IDENTIFIANT
  33.                         .Send
  34.                  
  35.                    End With
  36.            
  37.             End If


 
Alors qu'avant, il n'y avait que :
 

Code :
  1. Dim OutlApp2 As New Outlook.Application
  2.                     Dim OutlMail2 As MailItem
  3.                     Set OutlApp2 = New Outlook.Application
  4.                     Set OutlMail2 = OutlApp2.CreateItem(olMailItem)
  5.                     With OutlMail2
  6.                    
  7.                         .To = "moi@masociete.com"
  8.                         .Subject = CODESOCIETE & " - Saisie du résultat fiscal"
  9.                         .Body = "Le résultat fiscal de la société " & CODESOCIETE & " vient d'être modifié par " & IDENTIFIANT
  10.                         .Send
  11.                  
  12.                    End With


 
J'ai juste créé une condition en fonction de la valeur d'une cellule. S'agit-il d'une première validation ou d'une modification du résultat fiscal ?
 
Mais je n'ai pas rajouté de déclaration de variable...
 
 :??:  


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1736214
Xxxaaavvv
Posté le 23-05-2008 à 13:43:10  profilanswer
 

Code :
  1. Dim OutlMail2 As MailItem


est en double.
 
tu met l'un des deux au début de ta procédure
et tu vire l'autre.
 
une déclaration de variable ne se fait qu'une fois
t'a copier un bloc de code, donc la déclaration se trouve en double.

n°1736233
scaryfan
Apple Inside
Posté le 23-05-2008 à 14:12:18  profilanswer
 

Ah OK !
Si je comprends bien, avant toute exécution, un code est lu dans son intégralité...
Car dans le cas de mon code, si la condition est vraie, la partie après THEN est exécutée et non celle après ELSE... et si fausse, l'inverse.
Et je ne pensais pas que tout est lu avant...
 
Merci pour ton aide... ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1736235
Xxxaaavvv
Posté le 23-05-2008 à 14:13:54  profilanswer
 

c'est les déclarations qui sont lues avant...
 
et certaine instructions que je ne t'expliquerai pas :p
 
 
en fait VB cherche a comprendre avant l'execution de quels types sont les variables utilisées, si les fonctions que tu utilisent recoivent les bonnes variables, etc...

Message cité 1 fois
Message édité par Xxxaaavvv le 23-05-2008 à 14:14:51
n°1736264
scaryfan
Apple Inside
Posté le 23-05-2008 à 14:45:39  profilanswer
 

Xxxaaavvv a écrit :

c'est les déclarations qui sont lues avant...
 
et certaine instructions que je ne t'expliquerai pas :p
 
 
en fait VB cherche a comprendre avant l'execution de quels types sont les variables utilisées, si les fonctions que tu utilisent recoivent les bonnes variables, etc...


 
;)
 
Merci pour ces éclaircissements !!!
 
;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1736392
scaryfan
Apple Inside
Posté le 23-05-2008 à 17:04:17  profilanswer
 

Re-salut !
 
Bon, là, j'comprends plus.
Je suis à la maison et j'ai recopié mon fichier Excel.
J'ai une version antérieure d'Excel... version 2000 pour être précis.
Au boulot, c'est une version plus récente... je ne sais pas laquelle mais sans doute la dernière.
Quand j'ouvre mon fichier et que je veux lancer la macro principale, j'ai ce message
"Erreur de compilation - Projet ou biliothèque introuvable"
Le code où ça bloque est le suivant :

Code :
  1. .BIDON.Text = Format(ActiveCell.Value, "##,##0.00" )


Et le mot Format est surligné...
Je suis sûr d'avoir déjà fait fonctionner ma macro avant-hier...
 :fou:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1736397
scaryfan
Apple Inside
Posté le 23-05-2008 à 17:07:32  profilanswer
 

A priori, j'ai une référence manquante...
Effectivement, dans mes macros, il y a un appel à Office Outlook 11.0 Object Library... et quand je vais voir dans la liste, il y a le mot manquant juste avant cette référence...
Qu'est-ce qui bugge ?  :??:
 
Et puis c'est bizarre que le débogueur s'arrête à cette ligne, non ?


Message édité par scaryfan le 23-05-2008 à 17:08:34

---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1736401
Xxxaaavvv
Posté le 23-05-2008 à 17:12:59  profilanswer
 

essaye de virer la fonction Format temporairement pour être sur que c'est elle qui bloque.
 
ensuite oui, ton erreur vient d'une dll qui manque par rapporta  ton bureau...
normalement, dans les références tu devrais voir laquelle manque.
(menu projet -> références)

mood
Publicité
Posté le 23-05-2008 à 17:12:59  profilanswer
 

n°1736561
scaryfan
Apple Inside
Posté le 24-05-2008 à 09:18:58  profilanswer
 

Xxxaaavvv a écrit :

essaye de virer la fonction Format temporairement pour être sur que c'est elle qui bloque.
 
ensuite oui, ton erreur vient d'une dll qui manque par rapporta  ton bureau...
normalement, dans les références tu devrais voir laquelle manque.
(menu projet -> références)


 
Exact !
Quand je vais voir les références, celle d'Outlook 11 est manquante !
Quand je décoche, la macro s'exécute...par contre, sûrement pas l'envoi de mail.
 
;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1736563
scaryfan
Apple Inside
Posté le 24-05-2008 à 09:23:08  profilanswer
 

scaryfan a écrit :


 
Exact !
Quand je vais voir les références, celle d'Outlook 11 est manquante !
Quand je décoche, la macro s'exécute...par contre, sûrement pas l'envoi de mail.
 
;)


 
Et chez moi, il suffit d'activer la même référence mais en version 9.00 et ça fonctionne...  :bounce:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To

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

  Erreur de compilation...

 

Sujets relatifs
erreur (débile) de compilationErreur de compilation de Qt 4 avec Visual C++ 2005
Erreur de compilation d'un modele simulink en mode Accelerator[RESOLU][c][gcc] erreur de compilation
[SDL] Erreur de compilation sous WindowsErreur Compilation stray '\357'
Erreur de compilation[ASM]erreur de compilation (debutant)
Erreur compilationProblème de fenêtre d'erreur lors de la compilation
Plus de sujets relatifs à : Erreur de compilation...


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