Changement d'onglet non demandé

Bonjour,

J'ai codé le calcul de la participation client en fonction d'une cellule "COUTSTRAVAUX".

Toutes mes cellules sont dans l'onglet "Devis", sauf que lorsque je change le coût des travaux et que le calcul se relance, je me retrouve sur un autre onglet "Rentabilité" qui est masqué.

Je ne comprends pas ce changement d'onglet, j'ai changé tous les "activesheet" par "sheets("Devis")" pour être sur... mais rien a faire.

Est ce que quelqu'un aurait une idée ??

Merci

Public Function CParticipation(COUTSTRAVAUX As Currency)
'Déverrouille les cellules
Sheets("Devis").Unprotect ("1105")

'Selection de la participation a appliquer
Type_branchement = Sheets("Devis").Range("i4").Value

If Type_branchement <> "" Then

Select Case Type_branchement

Case Is = "Branchement particulier"

    Client = Range("I9").Value 'Nbre de clients
    CT = Round(COUTSTRAVAUX, 2) / Client ' répartition du couts des travaux par client

    If CT <= 1500 Then '1ere tranche
        CP = 607.26
        CParticipation = Round(CP, 2)

    ElseIf CT > 1500 And CT <= 3000 Then '2eme tranche
        CP = 607.26 + ((CT - 1500) * 0.5)
        CParticipation = Round(CP, 2)

    Else
        CP = (607.26 + 750 + (CT - 3000)) '3eme tranche
        CParticipation = Round(CP, 2)

    End If

Case Is = "Branchement Agricole"
 If Range("M4").Value = "" Then
 CParticipation = ""
 Else

    Client = Range("I9").Value
    CT = Round(COUTSTRAVAUX, 2) / Client
    Qualite = Range("M4").Value

    Select Case Qualite

    Case Is = "Titre principal"
        If CT <= 8000 Then
        CP = 253.03
        CParticipation = Round(CP, 2)
        Else
        CP = 253.03 + (CT - 8000)
        CParticipation = Round(CP, 2)
        End If

    Case Is = "Titre secondaire", "Retraité, Cotisant solidaire"
        If CT <= 8000 Then
        CP = CT * 0.3
        CParticipation = Round(CP, 2)
        Else
        CP = ((CT - 8000) * 0.3) + (CT - 8000)
        CParticipation = Round(CP, 2)
        End If

    Case Is = "Jeune Agriculteur (JA)"
        CP = 0
        CParticipation = Round(CP, 2)

    End Select

 End If

Case Is = "Branchement Industriel", "Autres"

 If Range("I47").Value = "" Then
 MsgBox "Merci de renseigner la marge a appliquer."
 Else

    Marge = Range("I47").Value / 100
    Client = Range("I9").Value
    CT = Round(COUTSTRAVAUX, 2) / Client

    CP = (CT * Marge) + CT

    CParticipation = Round(CP, 2)

 End If

End Select

End If

'Verrouille les cellules
Sheets("Devis").Protect ("1105")
End Function

bonjour,

Mets un Sheets("Devis"). devant chaque Range... :

Client = Sheets("Devis").Range("I9").V...
'...
If Sheets("Devis").Range("M4").V...
et ainsi de suite...

Dans la pratique on ne fait jamais comme ça ! Mébon... ça va te dépanner.

Il est probable que c'est une autre macro qui active l'onglet "Rentabilité"

A+

bonjour,

Mets un Sheets("Devis"). devant chaque Range... :

Client = Sheets("Devis").Range("I9").V...
'...
If Sheets("Devis").Range("M4").V...
et ainsi de suite...

Dans la pratique on ne fait jamais comme ça ! Mébon... ça va te dépanner.

Il est probable que c'est une autre macro qui active l'onglet "Rentabilité"

A+

J'ai trouvé comme résoudre la chose. Dans ma cellule où devait figurer le résultat j'avais : =SIERREUR(CParticipation(C15*(1+I48));0)

En enlevant "SIERREUR" le changement d'onglet ne se fait plus.

merci

Rechercher des sujets similaires à "changement onglet demande"