macro d'ajout à une liste

  • Initiateur de la discussion Initiateur de la discussion deadeye
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

deadeye

XLDnaute Nouveau
bonjours à tous!

Je suis entrain de faire un outil de suivi et je bloque!

Je vous montre ci-joint un plan grossier de ce que j'ai construit!

A partir de ce plan, je voudrais que quand je clique dans la case "envoyer", les infos de la même ligne des colonnes date 2, nom, banque, cap, hono et com soient ajoutés dans le tableau activité dans la partie "envoyé"

De même quand je cliquerais dans la case "Hono rég" une nouvelle ligne sera créée dans le tableau d'activité avec le nom et la banque, l'hono, le cap et la date3 dans la partie "réglé"

et IDEM pour quand je coche la case "com" faire une nouvelle ligne avec nom, banque, com, date4, et retro com dans la partie 'réglé"

Et je voudrais surtout ques les dates 2, 3 et 4 soient générés automatiquement quand on coche la case correspondante (la date du jour figée) et que le tableau se remplisse dans l'ordre où les cases sont remplies et sans laisser de blanc!

Voilà, j'espère qu'une macro peut faire ça!

Merci de votre aide! (au pire mettez moi sur la voie, j'essayerais de comprendre!)
 

Pièces jointes

Re : macro d'ajout à une liste

Encore une fois excuse moi de mon oubli!
Donc, ça devrait donner ça en fait (si on utilisait des formules), mais il faudrait que les données soient classées en fonction du moment où la case a été cochée et sans laisser de blancs!!

Merci!
 

Pièces jointes

Re : macro d'ajout à une liste

Bonjour,

Tout d'abord, j'ai recréé les cases à cocher pour les 2 premières lignes de tel sorte que la séquence d'appel se fasse de gauche à droite puis vers le bas. Je te laisse refaire les autres coches.
D'autre part, la macro utilise la propriété TopLeftCell c'est à dire que la cellule dans laquelle se trouve la coche (pas la cellule liée à la coche), est identifiée pour pouvoir récupérer les données. C'est pourquoi la hauteur des lignes doit être adaptée.
Ci-joint le fichier.

Edit:
Dernière chose: il faut adapter la macro si tu ajoutes d'autres coches (actuellement pour 6 lignes):
Case 1, 4, 7, 10, 13, 16 'etc....
Case 2, 5, 8, 11, 14, 17 'etc...
Case 3, 6, 9, 12, 15, 18 'etc...
 

Pièces jointes

Dernière édition:
Re : macro d'ajout à une liste

Merci beaucoup!
c'est pas tout à fais ce que j'attendais, mais ça fera très l'affaire!

Petite question sur la macro : elle est liée à la cellule ou au bouton?

et étant complètement noob, je ne comprend pas ça :
la cellule dans laquelle se trouve la coche (pas la cellule liée à la coche), est identifiée pour pouvoir récupérer les données. C'est pourquoi la hauteur des lignes doit être adaptée.
 
Re : macro d'ajout à une liste

Re,

la macro est liée au bouton.

Je veux dire par là que l'addresse de la coche correspond à la cellule dans laquelle elle se trouve. Ainsi, si le cadre de la coche chevauche légèrement une autre cellule, il y aura une mauvaise affectation dans la macro, c'est pourquoi il faut veiller à ce que la totalité de la coche se trouve bien dans la cellule et donc adapter la hauteur de la cellule si besoin.

Voili voilou.
 
Re : macro d'ajout à une liste

Merci beaucoup!!

Bon, ça marche très bien pour les deux premières lignes, mais bizarrement ça ne marche pas correctement pour les lignes après!
Ca ne met pas les infos dans les bonnes cases!
Pourtant j'ai encore rien changé à ton code vu qu'il est prévu pour 6 lignes, et j'ai bien vérifié pour les cases si elles ne dépassaient pas!

Un dernier coup de main pour que je puisse finir!

Merci!
 

Pièces jointes

Re : macro d'ajout à une liste

Bonjour,

une petite erreur c'est glissé dans les "select case" (en bleu la correction):

Code:
Function Datation() As Date
  Datation = Now
End Function
Sub essai()
With Sheets("Activité")
  .Range(.[A3], .[A3].SpecialCells(xlCellTypeLastCell)).ClearContents
End With
LigSuiv = 2
For n = 1 To ActiveSheet.Shapes.Count
  If ActiveSheet.Shapes(n).Name Like "Check Box*" Then
    If ActiveSheet.Shapes(n).ControlFormat.Value = 1 Then
      LigSuiv = LigSuiv + 1
      Lig = ActiveSheet.Shapes(n).TopLeftCell.Row
      With Sheets("Activité")
        Select Case n
        Case 1, 4, [B][COLOR=blue]8, 11, 14, 17[/COLOR][/B] 'etc....
          .Range("A" & LigSuiv).Value = Range("I" & Lig).Value
          .Range("B" & LigSuiv & ":F" & LigSuiv).Value = Range("B" & Lig & ":F" & Lig).Value
        Case 2, 5, [COLOR=blue][B]9, 12, 15, 18[/B][/COLOR] 'etc...
          .Range("A" & LigSuiv).Value = Range("K" & Lig).Value
          .Range("B" & LigSuiv & ":C" & LigSuiv).Value = Range("B" & Lig & ":C" & Lig).Value
          .Range("G" & LigSuiv & ":H" & LigSuiv).Value = Range("D" & Lig & ":E" & Lig).Value
          .Range("I" & LigSuiv).Value = Range("K" & Lig).Value
        Case 3, 6, [COLOR=blue][B]10, 13, 16, 19[/B][/COLOR] 'etc...
          .Range("A" & LigSuiv).Value = Range("M" & Lig).Value
          .Range("B" & LigSuiv & ":C" & LigSuiv).Value = Range("B" & Lig & ":C" & Lig).Value
          .Range("J" & LigSuiv).Value = Range("F" & Lig).Value
          .Range("K" & LigSuiv).Value = Range("M" & Lig).Value
          .Range("L" & LigSuiv).Value = Range("G" & Lig).Value
        End Select
      End With
    End If
  End If
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
98
Réponses
1
Affichages
51
  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
268
Retour