XL 2013 Enregistrer d'un Usf dans une feuille masquée excel vba

  • Initiateur de la discussion Initiateur de la discussion RMA20
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RMA20

XLDnaute Nouveau
Bonjour a tous,
c'est la première fois ou je poste qlq chose..
j'ai un problème. J'ai un fichier Excel qui contient une feuille ou j'enregistre des résultats d'un calcul donc l'utilisateur ne se sert que par l’intermédiaire d'un macro. N'ayant pas l'utilité de toucher la feuille, je l'ai masqué. Le problème est que dans ma macro, les étapes Worksheets("productivity").Range("b1").End(xlDown).Offset(1, 0).Select .....je sais pas le prob ms je pense qu'il ne fonctionne pas car la feuille est masqué...
voici mon code vba :

Private Sub saveinws()

Dim aa
aa = CInt(txttotal) - CInt(txtabsent) - CInt(txtadjuster) - CInt(txtgalia) - CInt(txtquality) - CInt(txtother)
If cmbshift = "Nuit" Then
Worksheets("productivity").Range("b1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = aa
ActiveCell.Offset(0, 1).Value = txtabsent.Value
caseeffectif.Value = aa
ElseIf cmbshift = "Matin" Then
Worksheets("productivity").Range("e1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = aa
ActiveCell.Offset(0, 1).Value = txtabsent.Value
caseeffectif.Value = aa
ElseIf cmbshift = "Après midi" Then
Worksheets("productivity").Range("h1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = aa
ActiveCell.Offset(0, 1).Value = txtabsent.Value
caseeffectif.Value = aa
End If

End Sub
 
Bonjour @RMA20,
Bienvenue sur XLD 🙂
il ne fonctionne pas car la feuille est masqué...

Vous avez bien vu. VBA ne peut sélectionner pas une feuille masquée, tout comme au sein d'Excel vous ne pouvez pas sélectionner une feuille cachée.

La plupart du temps il est inutile (et ça ralenti considérablement l’exécution) de sélectionner des cellules. On peut directement affecter une valeur à une cellule sans la sélectionner.
VB:
Private Sub saveinws()
Dim aa
   aa = CInt(txttotal) - CInt(txtabsent) - CInt(txtadjuster) - CInt(txtgalia) - CInt(txtquality) - CInt(txtother)
   With Worksheets("productivity")
      If cmbshift = "Nuit" Then
         .Range("b1").End(xlDown).Offset(1, 0) = aa
         .Range("b1").End(xlDown).Offset(1, 1) = txtabsent.Value
         caseeffectif.Value = aa
      ElseIf cmbshift = "Matin" Then
         .Range("e1").End(xlDown).Offset(1, 0) = aa
         .Range("e1").End(xlDown).Offset(1, 1) = txtabsent.Value
         caseeffectif.Value = aa
      ElseIf cmbshift = "Après midi" Then
         .Range("h1").End(xlDown).Offset(1, 0) = aa
         .Range("h1").End(xlDown).Offset(1, 1) = txtabsent.Value
         caseeffectif.Value = aa
      End If
   End With
End Sub
 
Dernière édition:
Re,

Ou:
VB:
Private Sub saveinws()
Dim aa, addr
   aa = CInt(txttotal) - CInt(txtabsent) - CInt(txtadjuster) - CInt(txtgalia) - CInt(txtquality) - CInt(txtother)
   If cmbshift = "Nuit" Then addr = "b1"
   If cmbshift = "Matin" Then addr = "e1"
   If cmbshift = "Après midi" Then addr = "h1"
 
   With Worksheets("productivity")
      .Range(addr).End(xlDown).Offset(1, 0) = aa
      .Range(addr).End(xlDown).Offset(1, 1) = txtabsent.Value
      caseeffectif.Value = aa
   End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
214
Réponses
21
Affichages
2 K
  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
461
Retour