Problème avec nombres de colonnes a sélectionner
bonjour a vous tous
j'ai ce morceau de code qui prends en compte les 7 premières colonnes a imprimer
For Each Sh In ActiveWindow.SelectedSheets
With Sh
'Déterminer la dernière ligne de données
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'Le tableau indique toujours 7 colonnes
DerCol = 7 ' au besoin...-> .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
'Test pour savoir s'il y a au moins une ligne de données à imprimer
If DerLig > 18 Thenmais je voudrais l'adapter a un autre classeur qui lui a 10 colonnes a imprimer mais pas les 2 premières soit de ("C à M") mais surtout pas (A et B)
j'ai essayer en décochant ce qu'il y a derrière 7 mais cela me prends les 12 colonnes
Pascal
Bonjour,
mais je voudrais l'adapter a un autre classeur qui lui a 10 colonnes a imprimer mais pas les 2 premières soit de ("C à M") mais surtout pas (A et B)bah... chez moi, colonnes C à M cela donne 11 colonnes.... regarde du coté de la propriété "resize"; avec ce que tu donnes comme code peux pas t'aider d'avantage...
bonne journée
@+
bonjour Pierrot93 et le forum
je laisse le code au complet il sert a faire un apercu de mes devis
Sub Impression(Optional Aperçu As Boolean)
Dim DerLig As Long, DerCol As Integer
Dim Sh As Worksheet, D As Long
Dim NbLig As Integer
'Pour chacune des feuilles imprimées, en plus
'des 18 premières lignes, il y aura toujours
'49 lignes de données, en supposant effectivement
'que ces lignes existent...
'=================PARAMÈTRES À DÉFINIR==================
'Tu peux modifier ce nombre en plus ou en moins comme tu le désires!
NbLig = 49 '<<<<============
'=======================================================
For Each Sh In ActiveWindow.SelectedSheets
With Sh
'Déterminer la dernière ligne de données
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'Le tableau indique toujours 7 colonnes
DerCol = 7 ' au besoin...-> .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
'Test pour savoir s'il y a au moins une ligne de données à imprimer
If DerLig > 11 Then
'S'assure de la présence des bordures...
Call Appliquer_Les_Bordures(Sh.Name)
'D représente les 18 premières lignes de la
'feuille + 1 (la première ligne d'impression)
D = 18
'une boucle qui consiste à "masquer / afficher" les lignes
'à imprimer pour chaque page
Do
x = x + NbLig
With Sh
's'assure que les lignes à imprimer sont visibles
.Range("A" & D).Resize(NbLig).EntireRow.Hidden = False
'On ajoute à D, la variable X à chaque boucle
D = 18 + x
's'assure de masquer le reste des lignes à ne pas imprimer
.Range("A" & D, "A" & DerLig).EntireRow.Hidden = True
With .PageSetup
.PrintArea = ""
'la plage de cellules à imprimer pour chaque page
.PrintTitleRows = Sh.Range("A1:j18").Address
.FitToPagesTall = 1
.FitToPagesWide = 1
.Orientation = xlPortrait
.PrintHeadings = False
'.CenterHeader = "&14&""Arial,Gras""FACTURE SAV N° " & No & _
" en date du " & Dt
'pied de page au centre
.CenterFooter = "&14&""SIRET : 000000000 - NAF : 00000 - RCS : 00000 - N° TVA : FR00000000000" & Chr(10) & _
"assurance décennale n°000000000 de chez untel"
End With
If Aperçu = True Then
.PrintPreview
Else
'.PrintOut 'à Activer après tes tests
End If
.PageSetup.PrintArea = ""
'Affiche toutes les lignes en bas de la section venant d'être imprimée
.Range("A" & D, "A" & DerLig).EntireRow.Hidden = False
'Masque les lignes qui viennent d'être imprimées sans touche A1:G11
.Range("A18").Resize(x).EntireRow.Hidden = True
End With
Loop Until D + 1 > DerLig
'Affiche toutes les lignes de la feuille après impression.
Sh.Range("A:A").EntireRow.Hidden = False
End If
Next
End Sub
Private Sub Appliquer_Les_Bordures(NomFeuille As String)
Dim DerLig As Integer
With Worksheets(NomFeuille)
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A18:M" & Rows.Count).Borders.LineStyle = xlNone
.Range("F18:M18").Borders.Weight = xlThin
.Range("A18:E18 , A19:E" & DerLig & " , F19:F" & DerLig & ", G19:G" & DerLig & ", H19:H" & DerLig & ", I19:I" & DerLig & ", J19:J" & DerLig & ", L19:L" & DerLig & ", M19:M" & DerLig).BorderAround Weight:=xlThin
End With
devis
End Subvoila pour le code qui est adapter a une feuille quasi du même format mais en occultant les colonnes A et B
Pascal