VBA: Erreur de Compilation

Bonjour à tous,

C'est mon premier post sur ce forum donc j'espère trouver rapidement une solution à mon problème .

J'ai un classeur qui date de 2002 avec une macro qui permet de faire certains calculs que je vous épargne.

Lorsque je l'ouvre dans excel pour window 2007 et j'exécute la macro, le message suivant apparaît: " Erreur de compilation: Projet ou Bibliothèque introuvable". Ensuite cette ligne du code de la macro est souligné:

Public Function Calsurface(NumLigne As Long) As Variant

Pouvez vous me dire quel est le problème que je rencontre pour exécuter cette macro dans excel sous Window 2007 et comment le résoudre?

Merci d'Avance

bonsoir,

Dans le menu VBA Outils > Références décocher la référence déclarée manquante.

Le cas échéant, si nécessaire (si ce n'est pas déjà fait) cocher la référence identique avec un N° de version plus récent.

A+

Bonjour galopint01,

Merci pour ta promptitude.

J'ai fait comme tu me l'as suggéré malheureusement ce message apparaît :

Erreur d'exécution '13' : Incompatibilité de type.

Quel est le problème à la suite de ce message.

Merci d'avance pour votre réponse et excellente journée.

Donner toute la macro.

Quel est la ligne en surbrillance ?

Bonsoir,

Voilà la macro en question

Sub CalculeSurface()

'

' Macro11 Macro

' Macro enregistrée le 02/12/2002 par tis01

'

'

Dim I As Long

Application.ScreenUpdating = False

For I = 8 To 2000

Range("I" & I).Value = CalSurface(I)

Next I

Application.ScreenUpdating = True

End Sub

Public Function CalSurface(NumLigne As Long) As Variant

Dim MyTexte As String

Dim PosCara As Integer

Dim ValA As Long

Dim ValB As Long

MyCell = "F" & NumLigne

MyCell2 = "E" & NumLigne

MyTexte = Range(MyCell).Text

MyTexte2 = Range(MyCell2).Text

'Test si il y a un x minuscule

PosCara = InStr(1, UCase(MyTexte), "X")

If PosCara <> 0 Then

ValA = Val(Left(MyTexte, PosCara - 1))

ValB = Val(Right(MyTexte, Len(MyTexte) - PosCara))

CalSurface = Format(1.3 * (ValA * ValB) / 1000000, "# ###.###")

Else

CalSurface = Format(1.1 * Val(MyTexte) / 1000, "# ###.###")

End If

If CalSurface = 0 Or CalSurface = " ." Or CalSurface = " ," Then

CalSurface = ""

Else

CalSurface = CalSurface * Val(MyTexte2)

End If

End Function

La ligne qui est sélectionnée est la suivante:

Public Function CalSurface(NumLigne As Long) As Variant

Je ne sais pas, à priori, il n'y a pas de raison : Chez moi ça se déroule sans erreur. (Hormis quelques problèmes de déclaration car tu n'as surement pas mis Option Explicit... Mais ce n'est pas ça le problème...

Il faudrait tester dans tes conditions réelles : Voir le classeur, dans quel module est implanté le classeur, avoir un Excel 2007 pour tester dans des conditions identiques...

Toutes choses que je ne peux faire. Attendre si quelqu'un d'autre à une idée...

A+

Rechercher des sujets similaires à "vba erreur compilation"