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 Then

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)

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 Sub

voila pour le code qui est adapter a une feuille quasi du même format mais en occultant les colonnes A et B

Pascal

Rechercher des sujets similaires à "probleme nombres colonnes selectionner"