cacher une feuille de calcul

Pierrot93

XLDnaute Barbatruc
Re : cacher une feuille de calcul

Bonjour Claude

pas tout compris, de toute façon une feuille ne peut pas être masquée et être active en même temps... mais pas besoin de selectionner une feuille pour agir dessus par vba, regarde peut être le code ci-dessous si cela peut t'aider :

Code:
Sub Vider()
With Sheets("Feuil3")
.Range("A1:F1").ClearContents
End With
End Sub

bonne soirée
@+
 

claude40

XLDnaute Occasionnel
Re : cacher une feuille de calcul

merci pierrot93
mais cette feuille ne me sert que a placer des infos pour les cachers des autres feuiles.
elle me sont utile uniquement pour que les calcul puisse fonctionner seul elle ne me serve pas. je les place dans le feuille3 juste en relais pour la feuille2,c'est pour sa que j'aimerai cacher la feuille3. si quelqu'un a une idée je suis preneur.

merci
 

Kotov

XLDnaute Impliqué
Re : cacher une feuille de calcul

Bonjour Claude,
Salut Pierrot, content de te croiser, :)

Comme Pierrot, je ne suis pas certain de bien cerner ta demande, alors pour faire avancer le schmilblick, je te propose la solution suivante :

Si la feuille 3 ne sert que "d'entrepôt caché" à des données temporairement utilisées pour des calculs, places ces données dans la mémoire d'Excel via des variables ou des tableaux de données déclarés en VBA. Plus besoin de feuille 3.
Et si tu souhaites bloquer l'accès à ces données, il suffit alors de verrouiller le projet.

A +

Kotov
 

Kotov

XLDnaute Impliqué
Re : cacher une feuille de calcul

Bonsoir Claude,

Un exemple entièrement en VBA qui ne nécessite aucune formule (j'ai effacé les feuilles 2 et 3 dans ton fichier)
Tout est calculé en mémoire.
Pour la restitution des résultats, j'ai fais un mix avec un affichage par messages et j'ai terminé par une inscription "en dur" dans 3 cellules de la feuille 1.

A noter que j'ai programmé ces calculs d'après tes formules, parce qu'en fait, "Barbotine, Défloculents et Matière sèche" sont du chinois pour moi, et bien naturellement, je n'ai aucune idée de leur mode de calcul.

Code:
Private Sub CommandButton1_Click()
Dim V1 As Double, V2 As Double, V3 As Double, V4 As Double, V5 As Double, V6 As Double
Dim PoidsMatSeche As Double, Barbotine As Double, Défloculent As Double
On Error GoTo StopErr

V1 = InputBox("Matière sèche. Inscrire la valeur que tu aurais saisi en cellule E8  ")
V2 = InputBox("Matière sèche. Inscrire la valeur que tu aurais saisi en cellule G8  ")
V3 = InputBox("Matière sèche. Inscrire la valeur que tu aurais saisi en cellule F9  ")
PoidsMatSeche = (V1 * V2 * -10000) / (V3 * -1)

m1$ = "V1 = " & CStr(V1) & "  --  V2 = " & CStr(V2) & "  --  V3 = " & CStr(V3)
m1$ = m1$ & Chr(10) & Chr(10) & "Poids de matière sèche = " & Round(PoidsMatSeche, 2) & " gr"
MsgBox m1$, vbInformation, "Résultats"

V4 = InputBox("Barbotine. Inscrire la valeur que tu aurais saisi en cellule H14  ")
Barbotine = (V4 * 1000) / PoidsMatSeche

m1$ = m1$ & Chr(10) & Chr(10) & "V4  = " & CStr(V4)
m1$ = m1$ & Chr(10) & Chr(10) & "Barbotine = " & Round(Barbotine, 2) & " gr"
MsgBox m1$, vbInformation, "Résultats"

V5 = InputBox("Défloculent. Inscrire la valeur que tu aurais saisi en cellule H20  ")
V6 = InputBox("Défloculent. Inscrire la valeur que tu aurais saisi en cellule J20  ")
Défloculent = ((V5 * V6) / 1000) / 2

m1$ = m1$ & Chr(10) & Chr(10) & "V5  = " & CStr(V5) & "  --  V6 = " & CStr(V6)
m1$ = m1$ & Chr(10) & Chr(10) & "Défloculents = " & Round(Défloculent, 2) & " gr"
MsgBox m1$, vbInformation, "Résultats"

'Inscription dans la feuille
With Sheets("Feuil1")
    .Cells(9, 4) = Round(Barbotine, 2)
    .Cells(17, 2) = " Le poids de matière sèche = " & Round(PoidsMatSeche, 2)
    .Cells(18, 2) = "La valeur de défloculents = " & Round(Défloculent, 2)
End With
Exit Sub

StopErr:
Err.Clear
MsgBox "Une donnée erronée a été saisie, provoquant une erreur de calcul", vbCritical, "Erreur .."
End Sub

Je te joins ton fichier adapté à la sauce VBA. Cliques sur le bouton rouge et laisses toi guider.

Bonne soirée
Kotov
 

Pièces jointes

  • ClaudeVBA.zip
    37 KB · Affichages: 90

claude40

XLDnaute Occasionnel
Re : cacher une feuille de calcul

Bonsoir Claude,

Un exemple entièrement en VBA qui ne nécessite aucune formule (j'ai effacé les feuilles 2 et 3 dans ton fichier)
Tout est calculé en mémoire.
Pour la restitution des résultats, j'ai fais un mix avec un affichage par messages et j'ai terminé par une inscription "en dur" dans 3 cellules de la feuille 1.

A noter que j'ai programmé ces calculs d'après tes formules, parce qu'en fait, "Barbotine, Défloculents et Matière sèche" sont du chinois pour moi, et bien naturellement, je n'ai aucune idée de leur mode de calcul.

Code:
Private Sub CommandButton1_Click()
Dim V1 As Double, V2 As Double, V3 As Double, V4 As Double, V5 As Double, V6 As Double
Dim PoidsMatSeche As Double, Barbotine As Double, Défloculent As Double
On Error GoTo StopErr

V1 = InputBox("Matière sèche. Inscrire la valeur que tu aurais saisi en cellule E8  ")
V2 = InputBox("Matière sèche. Inscrire la valeur que tu aurais saisi en cellule G8  ")
V3 = InputBox("Matière sèche. Inscrire la valeur que tu aurais saisi en cellule F9  ")
PoidsMatSeche = (V1 * V2 * -10000) / (V3 * -1)

m1$ = "V1 = " & CStr(V1) & "  --  V2 = " & CStr(V2) & "  --  V3 = " & CStr(V3)
m1$ = m1$ & Chr(10) & Chr(10) & "Poids de matière sèche = " & Round(PoidsMatSeche, 2) & " gr"
MsgBox m1$, vbInformation, "Résultats"

V4 = InputBox("Barbotine. Inscrire la valeur que tu aurais saisi en cellule H14  ")
Barbotine = (V4 * 1000) / PoidsMatSeche

m1$ = m1$ & Chr(10) & Chr(10) & "V4  = " & CStr(V4)
m1$ = m1$ & Chr(10) & Chr(10) & "Barbotine = " & Round(Barbotine, 2) & " gr"
MsgBox m1$, vbInformation, "Résultats"

V5 = InputBox("Défloculent. Inscrire la valeur que tu aurais saisi en cellule H20  ")
V6 = InputBox("Défloculent. Inscrire la valeur que tu aurais saisi en cellule J20  ")
Défloculent = ((V5 * V6) / 1000) / 2

m1$ = m1$ & Chr(10) & Chr(10) & "V5  = " & CStr(V5) & "  --  V6 = " & CStr(V6)
m1$ = m1$ & Chr(10) & Chr(10) & "Défloculents = " & Round(Défloculent, 2) & " gr"
MsgBox m1$, vbInformation, "Résultats"

'Inscription dans la feuille
With Sheets("Feuil1")
    .Cells(9, 4) = Round(Barbotine, 2)
    .Cells(17, 2) = " Le poids de matière sèche = " & Round(PoidsMatSeche, 2)
    .Cells(18, 2) = "La valeur de défloculents = " & Round(Défloculent, 2)
End With
Exit Sub

StopErr:
Err.Clear
MsgBox "Une donnée erronée a été saisie, provoquant une erreur de calcul", vbCritical, "Erreur .."
End Sub

Je te joins ton fichier adapté à la sauce VBA. Cliques sur le bouton rouge et laisses toi guider.

Bonne soirée
Kotov

Bonjour Kotov
et merci pour ton travail

j'ai quand meme un 1souci sur les formulation

2 je n'arrive pas a mettre les . dans les chiffres et il sont inportant dans les formules

je te joint un fichier avec dans la feuille2 les données que j'ai inscrite pour renseigner les formules

peut m'expliquer les modif que tu aura faite

merci d'avance

je te joint les 2 fichier le tient et le mienRegarde la pièce jointe 748077
Regarde la pièce jointe 748078
 

Pièces jointes

  • ClaudeVBA(c).zip
    37.1 KB · Affichages: 46
  • rajout deflo originale (c).zip
    48.4 KB · Affichages: 42

Kotov

XLDnaute Impliqué
Re : cacher une feuille de calcul

Bonjour Claude,


Je ne suis pas certain de comprendre ta demande.
J'ai regardé ton fichier "Deflo original" et il me semble correct et utilisable.

Je crois comprendre, que ton fichier étant réalisé par un mix Formules/VBA (saisie en VBA et calcul via les formules), tu souhaites, comme dans mon exemple ci-dessus, avoir un mode de calcul tout VBA.
Si c'est le cas, signales le moi.

Par ailleurs, tu dis avoir des difficultés avec le point (.) dans les formules.
Là encore, je ne suis pas sûr de bien cerner ta demande :
S'agit-il du point utilisé comme virgule dans une donnée numérique
ou du point que j'utilise dans mon code VBA ?
Code:
With Sheets("Feuil1")
   [b][color=red].[/b][/color]Cells(9, 4) = Round(Barbotine, 2)
    [b][color=red].[/b][/color]Cells(17, 2) = " Le poids de matière sèche = " & Round(PoidsMatSeche, 2)
    [b][color=red].[/b][/color]Cells(18, 2) = "La valeur de défloculents = " & Round(Défloculent, 2)
End With

Dans ce cas précis, le point évite d'écrire à chaque ligne Sheets("Feuil1"). C'est approximativement le principe du Contenant/Contenu, du Parent/Enfant.
On pourrait écrire
Sheets("Feuil1").Cells(1,1) = "A"
Sheets("Feuil1").Cells(2,1) ="B"
Sheets("Feuil1").Cells(3,1) = "C"
.....(qu'importe le nombre de lignes)
Sheets("Feuil1").Cells(26,1) = "Z"

ou
With Sheets("Feuil1")
.Cells(1,1) = "A"
.Cells(2,1) = "B"
.Cells(3,1) = "C"


.Cells(26,1) = "Z"
End With

Cette façon d'imbriquer le Contenu dans le Contenant est très utile pour éviter de répéter de nombreuses fois le Contenant.


Précises bien ta demande pour m'éviter le "hors sujet"

Pour ma culture perso, que sont la barbotine, le défloculent ?

A +
Kotov
 
Dernière édition:

claude40

XLDnaute Occasionnel
Re : cacher une feuille de calcul

rebonjour Kotov

dans la boite de dialogue qui s'affiche quand je click sur le bouton je ne peut pas rentrée les point dans les chiffres c'et a dire je suis obliger de taper 1492 au lieu de 1.492 et pareil pour 284 au lieu de 2.84.
quand je tape le point cela m'affiche le message d'erreur

merci
excuse moi pour mon manque de précision
 

Kotov

XLDnaute Impliqué
Re : cacher une feuille de calcul

Re,

Logique que tu te retrouves face à un message d'erreur dans la macro que je t'ai proposé :
Code:
.......
On Error GoTo StopErr
.......... les calculs......
StopErr:
Err.Clear
MsgBox "Une donnée erronée a été saisie, provoquant une erreur de calcul", vbCritical, "Erreur .."
..........

Le principe : à chaque erreur, le calcul est stoppé et la macro se poursuit dans le gestionnaire d'erreur StopErr qui nettoie le code erreur et affiche un message t'avisant de la saisie erronnée.

Pourquoi une erreur dans ta saisie ? tout simplement parce qu'en guise de séparateur, tu utilises le point à la place de la virgule (format US au lieu de format FR)

2 options principales :
. tu saisies tes données sous la forme 2,3456
. tu persistes à saisir des données au format 2.3456 en ayant au préalable modifié les paramètres régionaux de ton PC :
Panneau de configuration / Options régionales et linguistiques / paramètre régional = Anglais (Etats Unis) à la place de Français (France)
Les calculs s'effectueront sans problème avec le point.
Inconvénient : ce changement affecte la totalité de ton PC et pas uniquement le fichier concerné.

Bonne soirée
Kotov
 

Kotov

XLDnaute Impliqué
Re : cacher une feuille de calcul

Bonjour Claude,

Si ta demande entre dans mon champ de compétences, je te guiderai volontiers.

Si j'ai répondu à tes questions, tu n'a pas répondu à la mienne, (cf. plus haut) ;)

"Pour ma culture perso, que sont la barbotine, le défloculent ? "Quel usage et quel intérêt de les calculer ?

Bonne journée
Kotov
 

Discussions similaires