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

Autres Problème code VBA "objet requis"

rosabelle

XLDnaute Junior
Bonjour,

Pourriez-vous m'expliquer pourquoi j'ai cette alerte


J'ai rentré le code suivant pour imprimer une page excel
Y a t il une erreur dans ce code
J'ai par ailleurs créé un bouton commande auquel j'ai affecté la macro


Public Sub Imprimer()
Dim n As Long

n = 5
With Feuil1
.Unprotect Password:="toto"
Do
If .Cells(n + 1, 1).Value = "" Then .Rows(n + 1).Hidden = True
n = n + 1
Loop While .Cells(n + 1, 1).Formula <> ""
With .PageSetup
.BlackAndWhite = True
.PrintArea = "$A1:M" & n
End With
.PrintOut Preview:=True
.Rows.Hidden = False
.Protect Password:="transall", UserInterFaceOnly:=True
End With

End Sub

Merci par avance
Bonne journée
 
Solution
Votre Loop while s'arrête sur la première cellule vide :
VB:
Loop While .Cells(n + 1, 1).Formula <> ""
donc en ligne 12 puisque A10 et A11 ne sont pas vides.

Si vous voulez afficher la zone utile, il faut partir de la fin et remonter jusqu'à qu'une cellule soit non vide. Alors vous pouvez faire :
Code:
Public Sub ImprimerSylvanu()
  Dim n As Long
  Application.ScreenUpdating = False
  n = Range("A65500").End(xlUp).Row     ' Dernière cellule occupée
  With Feuil2
    .Unprotect Password:="toto"
    Do
      n = n - 1                         ' On remonte
      a = .Cells(n, 1).Value
    Loop While .Cells(n, 1).Value = ""  ' On sort si la cellule est non vide
    With .PageSetup
      .BlackAndWhite = True
      .PrintArea = "$A1:M" & n +...

rosabelle

XLDnaute Junior
Bonsoir,
Merci beaucoup @sylvanu !
Ce code fonctionne parfaitement, je le garde aussi précieusement.
Il est plus adapté pour la configuration de ce tableur.
Quelle réactivité sur ce forum, vraiment bravo à tous
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…