VBA, procedure plante si feuille pas active

Bonsoir le forum

Je viens demander votre aide parceque j'ai une erreur sur mon fichier.

Lorsque je lance l'userform en etant sur une des feuille (TAV, VAT ou TAT) ca marche nickel, mais lorsque je me positionne sur la feuille interface, j'ai une erreur. J'ai l'impression que la procedure recherche les données sur la feuille active et la je ne sais pas comment corriger.

Possible de m'aider a resoudre ce probleme?

Merci d'avance

Bonjour,

Juste sous les déclaration de variables, mets cette ligne de code :

If ActiveSheet.Name = "INTERFACE" Then MsgBox "Veuillez activer la feuille cible !": Exit Sub

Merci pour la proposition Theze, mais je voudrais eviter d'activer la feuille. Serait t-il possible de faire en sorte que la procedure se refere a ces feuille directement?

Mais comment savoir laquelle doit être la cible ?

A priori les calculs sont bons lorsqu'on es positionné sur au moins une feuilles parmis les trois. Alors considerons la feuille ''TAV'' comme cible.

Comme ceci alors, c'est la feuille "TAV" qui sert de référence, à adapter :

Sub calcul()

Dim Plage_Nom1 As Range
Dim Plage_Nom2 As Range
Dim Plage_Nom3 As Range
Dim Nom As String
Dim Date_Mois As Byte
Dim i As Integer
Dim Total_1 As Integer
Dim Total_2 As Integer
Dim Total_3 As Integer

Set Plage_Nom1 = Worksheets("TAV").Range("A4:A14")
Set Plage_Nom2 = Worksheets("VAT").Range("A4:A14")
Set Plage_Nom3 = Worksheets("TAT").Range("A4:A14")

Nom = UserForm1.TextBox2.Text

Date_Mois = Month(UserForm1.TextBox1.Value)

i = 2

If Month(Worksheets("TAV").Cells(3, i).Value) <> Date_Mois Then
    While Month(Worksheets("TAV").Cells(3, i).Value) <> Date_Mois
        i = i + 1
    Wend
Else
    While Month(Worksheets("TAV").Cells(3, i).Value) = Date_Mois
        Total_1 = Total_1 + Plage_Nom1.Find(What:=Nom, LookAt:=xlWhole).Offset(0, i - 1).Value
        Total_2 = Total_2 + Plage_Nom2.Find(What:=Nom, LookAt:=xlWhole).Offset(0, i - 1).Value
        Total_3 = Total_3 + Plage_Nom3.Find(What:=Nom, LookAt:=xlWhole).Offset(0, i - 1).Value
        i = i + 1
    Wend
End If

While Month(Worksheets("TAV").Cells(3, i).Value) = Date_Mois
        Total_1 = Total_1 + Plage_Nom1.Find(What:=Nom, LookAt:=xlWhole).Offset(0, i - 1).Value
        Total_2 = Total_2 + Plage_Nom2.Find(What:=Nom, LookAt:=xlWhole).Offset(0, i - 1).Value
        Total_3 = Total_3 + Plage_Nom3.Find(What:=Nom, LookAt:=xlWhole).Offset(0, i - 1).Value
        i = i + 1
Wend

UserForm1.TextBox3.Text = Total_1
UserForm1.TextBox4.Text = Total_2
UserForm1.TextBox5.Text = Total_3

End Sub

Merci Theze, je teste ca

Ca marche Theze, merci

Rechercher des sujets similaires à "vba procedure plante feuille pas active"