Exporter resultats pour calcul %

Bonjour,

Si l'application est lancée depuis la feuille ADMINISTRATEUR, alors il faut lui préciser d'aller chercher la dernière ligne dans la feuille DATA, sinon il cherche la dernière ligne de la feuille ADMINISTRATEUR

     DerLig_Data = Sheets("DATA").Range("D" & Rows.Count).End(xlUp).Row                 'détermine la dernière ligne
     If DerLig_Data > 8 Then Sheets("DATA").Range("D9:E" & DerLig_Data).ClearContents   'si la dernière ligne est la 8, on fait rien sinon, on efface tout ce qui est en dessous

Cdlt

Bonjour le forum

Re Arthuro83

Voici le code modifié suivant des recommandations.

J'ai mis suite à ta remarque

Si l'application est lancée depuis la feuille ADMINISTRATEUR, alors il faut lui préciser d'aller chercher la dernière ligne dans la feuille DATA, sinon il cherche la dernière ligne de la feuille ADMINISTRATEUR

cette ligne supplémentaire

 Worksheets("DATA").Activate   'Activation Feuille "DATA"

Donc le code final qui fonctionne est:

'PROCEDURE METTRE "PE" DANS COLONNE D A PARTIR DE LA LIGNE 3 SI CELLULE B N'EST PAS VIDE sur toutes les feuilles

Private Sub Btn_InitDossier_Click()
    Dim plage As Range
    Dim i%, Y%
    Dim DerLig As Long
    Dim Data As Long

        Application.ScreenUpdating = False  'Désactive l'actualisation de l'écran
        Unload UserForm2         'fermeture userform

    For i = 3 To Worksheets.Count
         With Worksheets(i)
             For Y = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
                If Not IsEmpty(.Cells(Y, 3)) Then
                    .Range(.Cells(Y, 4), .Cells(Y, 10)).ClearContents   'Raz des informations précédentes
                    .Cells(Y, 4) = "PE"                                     'Ecriture pas essayer "PE"
                    .Columns("G:I").EntireColumn.Hidden = True             ' Choix des colonnes a masquer pour saisir les informations: Columns("G:I") étant la phase corrective sur "N"
                End If
             Next Y
        End With
    Next i

   Worksheets("DATA").Activate   'Activation Feuille "DATA"

     DerLig_Data = Sheets("DATA").Range("D" & Rows.Count).End(xlUp).Row                 'détermine la dernière ligne
     If DerLig_Data > 8 Then Sheets("DATA").Range("D9:E" & DerLig_Data).ClearContents   'si la dernière ligne est la 8, on fait rien sinon, on efface tout ce qui est en dessous

    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "DATA" And Sheets(i).Name <> "ADMINISTRATEUR" Then    'toutes les feuilles sauf "DATA" et "ADMINISTRATEUR"
            PosTiret = InStr(1, Sheets(i).Name, "-", 1) 'relevé de l'emplacement du tiret dans le nom de l'onglet
            Tbl = Left(Sheets(i).Name, PosTiret - 1)
            With Sheets("DATA")    'Choix de la l'onglet "DATA"
                .Cells(9 + i - 3, "D") = Sheets(i).Name 'Nom de l'onglet
                .Range("E" & 9 + i - 3) = "=COUNTIF(" & Tbl & "[CONFORME O / N / PE],""PE"")"
            End With
        End If
    Next i

    DerLig_Data = Worksheets("DATA").Range("D" & Rows.Count).End(xlUp).Row   'détermine la dernière ligne
    If DerLig_Data > 8 Then Sheets("DATA").Range("D9:E" & DerLig_Data).Value = Range("D9:E" & DerLig_Data).Value 'remplacement des formules par leurs valeurs

    MsgBox "Toutes les feuilles sont mises à jour", vbInformation

    Application.ScreenUpdating = True   'Résactive l'actualisation de l'écran

 Worksheets("DATA").Visible = False 'Activation Feuille "DATA"
End Sub

Quand penses-tu ?

Merci

Bonne fin de journée

Si ça marche, c'est bon.

Pour info, la ligne suivante en fin de macro:

 Application.ScreenUpdating = True   'Résactive l'actualisation de l'écran

ne sert à rien, en effet, dès que la macro a fini, l'écran est réactualisé.

Cdlt

Re le forum

Re Arthuro83

Merci pour ton aide sur ce post.

L'aide que j'ai eu grâce à ce site et et toi en particulier, mon permis d'avancer et de me former par la même occasion.

Je (vous) te souhaite bonne fin de journée

Ledzep

Rechercher des sujets similaires à "exporter resultats calcul"