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