Bonsoir,
Afin de gérer le travail de plusieurs collaborateurs, je suis en train de développer un fichier de gestion de travail de groupe.
Je me retrouve face à 2 problèmes.
1] Optimisation d'un macro : Afin de traiter ma BDD dans plusieurs onglet, j'ai crée la macro mentionné ci-dessous. Le soucis est que son exécution prend trop de temps. 8O
2] Si en cours d'année, j'insère une nouvelle ligne dans l'onglet liste, les informations saisies dans les onglet suivant ne correspondent plus au bon dossier > :weird:
Je suis ouvert à tout piste, merci de votre collaboration.
Private Sub Worksheet_Activate()
Feuil4.[C5:C99].ClearContents
With Feuil2
'Reprise des informations de l'onglet LISTE
i = 5
For lig = 5 To .[D65000].End(3).Row
If .Cells(lig, 20) = "X" Then
Feuil4.Cells(i, 3) = .Cells(lig, 3)
Feuil4.Cells(i, 4) = .Cells(lig, 6)
Feuil4.Cells(i, 5) = .Cells(lig, 8): i = i + 1
End If
Next
End With
With Feuil4
'Masquer les lignes vides
For i = 5 To 99 'Numéro des lignes concerné
If Range("C" & i) = "" Then ' je test si la cellule C est vide
Rows(i).Select 'Selectionne la ligne
Selection.EntireRow.Hidden = True
Else
Rows(i).Select 'Selectionne la ligne
Selection.EntireRow.Hidden = False
End If
Next i
End With
End Sub
Afin de gérer le travail de plusieurs collaborateurs, je suis en train de développer un fichier de gestion de travail de groupe.
Je me retrouve face à 2 problèmes.
1] Optimisation d'un macro : Afin de traiter ma BDD dans plusieurs onglet, j'ai crée la macro mentionné ci-dessous. Le soucis est que son exécution prend trop de temps. 8O
2] Si en cours d'année, j'insère une nouvelle ligne dans l'onglet liste, les informations saisies dans les onglet suivant ne correspondent plus au bon dossier > :weird:
Je suis ouvert à tout piste, merci de votre collaboration.
Private Sub Worksheet_Activate()
Feuil4.[C5:C99].ClearContents
With Feuil2
'Reprise des informations de l'onglet LISTE
i = 5
For lig = 5 To .[D65000].End(3).Row
If .Cells(lig, 20) = "X" Then
Feuil4.Cells(i, 3) = .Cells(lig, 3)
Feuil4.Cells(i, 4) = .Cells(lig, 6)
Feuil4.Cells(i, 5) = .Cells(lig, 8): i = i + 1
End If
Next
End With
With Feuil4
'Masquer les lignes vides
For i = 5 To 99 'Numéro des lignes concerné
If Range("C" & i) = "" Then ' je test si la cellule C est vide
Rows(i).Select 'Selectionne la ligne
Selection.EntireRow.Hidden = True
Else
Rows(i).Select 'Selectionne la ligne
Selection.EntireRow.Hidden = False
End If
Next i
End With
End Sub
Pièces jointes
Dernière édition: