Microsoft 365 creation d'liste à imprimer

Banbara

XLDnaute Nouveau
Supporter XLD
Bonjour à tous,

Sur une feuille de calcul pour gérer une association, j’ai une colonne avec des cases à cocher « K » qui est lié avec la colonne « L » ou apparait une « coche » ou un « x » suivant que la cotisation est payée ou pas. Avec une macro VBA, je veux créer une feuille « Liste à imprimer » qui doit me ressortir uniquement le résultat des coches « payées », et éventuellement faire une mise à jour si une nouvelle coche est activée. Le programme ci-joint fonctionne si le feuille « Liste à imprimer » n’existe pas, elle est crée et remplie avec les données. Si elle existe il efface bien la feuille, mais elle reste vierge sans aucune donnée, alors je demande l’aide des spécialistes.

Sub ImprimerListeCoches()
Dim ws As Worksheet
Dim cell As Range
Dim newSheet As Worksheet
Dim rowNum As Integer
Dim cellValue As Variant

' Définir la feuille de calcul active
Set ws = ActiveSheet

' Vérifier si la feuille "Liste à Imprimer" existe déjà
On Error Resume Next
Set newSheet = Sheets("Liste à Imprimer")
On Error GoTo 0

' Si la feuille n'existe pas, la créer
If newSheet Is Nothing Then
Set newSheet = Sheets.Add(After:=Sheets(Sheets.Count))
newSheet.Name = "Liste à Imprimer"
Else

' Si la feuille existe, effacer les anciennes entrées
'newSheet.Cells.Clear
End If

' Initialiser le numéro de ligne pour la nouvelle feuille
rowNum = 1

' Parcourir chaque cellule de la colonne L
For Each cell In ws.Range("L2:L" & ws.Cells(ws.Rows.Count, "L").End(xlUp).Row)

' Vérifier la valeur de la cellule
cellValue = cell.Value

' Vérifier si la cellule est cochée
If cellValue = True Then

' Copier les valeurs des colonnes B, C, D et E à la nouvelle feuille
newSheet.Cells(rowNum, 1).Value = cell.Offset(0, -10).Value ' Colonne B
newSheet.Cells(rowNum, 2).Value = cell.Offset(0, -9).Value ' Colonne C
newSheet.Cells(rowNum, 3).Value = cell.Offset(0, -8).Value ' Colonne D
newSheet.Cells(rowNum, 4).Value = cell.Offset(0, -7).Value ' Colonne E
rowNum = rowNum + 1
End If
Next cell

' Message de débogage
MsgBox "Mise à jour terminée. Nombre de lignes ajoutées : " & rowNum - 1
End Sub
 
Solution
Bonjour @AlphaOne

L'erreur est juste sur le message pas sur la liste (heureusement) 🤣
J'ai pris la mauvaise variable :rolleyes:
Rappel :
Tu as la possibilité de ne pas afficher les messages !

1726241240929.png


Rectifié avec cette version

Banbara

XLDnaute Nouveau
Supporter XLD
@Banbara

Voici la V9 en principe plus de bug


Ta limite est maintenant de 1 048 576 lignes cela te laisse un peu de temps :oops: ;)

J'ai rajouté une couleur pour la colonne F (N° de ligne) et j'ai améliorer la présentation dans la feuille "Liste à imprimer"

Merci de ton retour
Merci Phil pour tout ce travail, Donc je viens de regarder cette nouvelle version (V9). Si la liste à imprimer existe vraiment, il n'y a aucun problème tout a l'air de fonctionner normalement. Si la feuille "Liste à imprimer" n'existe pas, alors là on a un message d'erreur 400, après validation tout à l'air de fonctionner normalement aussi. voilà pour ce petit retour d'expérience. En tout les cas ton travail est magnifique, et ca fait plaisir. Cordialement.
 

Banbara

XLDnaute Nouveau
Supporter XLD
@Banbara

Bizarre chez moi cela fonctionne
Voir la vidéo avec création de la feuille "liste à imprimer" sans message d'erreur
Regarde la pièce jointe 1203108
Oui, chez moi cela fonctionne aussi normalement, je ne sais pas ce qui a pu se passer, j'ai bien eu le rond rouge avec la croix et 400 à coté. Tant mieux, je vais pouvoir mettre cette version en service, c'est l'époque de rentrée des cotisations annuelles.
 
Dernière édition:

Banbara

XLDnaute Nouveau
Supporter XLD

Statistiques des forums

Discussions
314 698
Messages
2 112 016
Membres
111 392
dernier inscrit
riffaud