Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Banbara

XLDnaute Nouveau
Supporter XLD
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:

Phil69970

XLDnaute Barbatruc
Bonjour @AlphaOne

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



Rectifié avec cette version
 

Pièces jointes

  • Creation liste sur feuille 2 V10.xlsm
    49.6 KB · Affichages: 5
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…