Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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:

mapomme

XLDnaute Barbatruc
Supporter XLD
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
 

Discussions similaires

Réponses
21
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…