Code pour automatiser ajout de donnees quotidiennement

Bonjour ,

Je souhaiterais creer un macro pour automatiser avec un bouton 2 operations mais je n'ai pas trouver le moyen de le faire. Quelqu'un aurait-il une idee? Je dois automatiser la tache suivante:

  • Dans l'onglet 1 je dois coller une colonne de donnees a droite de la derniere colonne remplie.
    • Je dois ensuite repliquer la mise en forme des dates se situant dans les colonnes precedentes et l'appliquer a la derniere colonne collee.
    • Je ne souhaite etendre le format qu'a la derniere colonne colonne.
  • Dans l'onglet 2 , je dois coller une plage de donnees en A29 quotidiennement
    • Je souhaite ensuite transposer la plage de donnees de A29 - M35 sur la case correspondante a la date en A29 (ici 30/09/22) et la coller sur la case correspondante sur la ligne 1 (ici cela correspond a F1 - 30/09/22-)
    • Une fois la plage collee (voir onglet 3) je souhaite ajouter un quadrillage et centrer les nouvelles valeur comme dans l'exemple et supprimer la plage qui etait en A29 car plus necessaire mais colorer la plage pour savoir ou coller la nouvelle plage du lendemain.
    • Je dois ensuite juste copier les valeur entre la ligne 14 et 26 et les coller en tant que valeur mais uniquement jusqu'a la derniere colonne de donnees (ici L) , car je doit garder les formules pour les jours a venir. Je dois donc garder les fomules dans les colonnes ne contenant aucune donnees. Idealement je souhaiterais appliquer une couleur et mettre les valeur coller en gras comme dans l'exemple.

Merci infiniment par avance,

Cordialement

12book27.xlsx (19.40 Ko)

Bonjour

Dans l'onglet 1 je dois coller une colonne de donnees a droite de la derniere colonne remplie.
Je dois ensuite repliquer la mise en forme des dates se situant dans les colonnes precedentes et l'appliquer a la derniere colonne collee.
Je ne souhaite etendre le format qu'a la derniere colonne colonne.

Pourquoi ne pas mettre votre tableau au format structuré. Une fois fait pas besoin de code. il vous suffira de vous positionner juste derrière la dernière colonne et entrer la nouvelle date en G1 (G1 ici par rapport à votre fichier actuel) . La mise en forme sera appliquée automatiquement
Votre feuille Sheet1, colonne G --> C'est bien cette colonne qui est la nouvelle ? Si oui, d'où viennent les données 4973, et suivantes ?

Bonjour Dan,

Merci pour votre reponse.

Oui , c'est bien la colonne G qui est la derniere colonne. En fait je doit copier manuellement cette colonne qui vient d'une autre source.

Le probleme en fait c'est qu'il y a le jour de la semaine qui apparait apres la date, du coup meme si la mise en forme s'applique avec un tableau structure , il restera le jour de la semaine que je souhaite retirer?

Merci pour votre aide

Le probleme en fait c'est qu'il y a le jour de la semaine qui apparait apres la date,....

Je n'ai pas compris là

En fait quand je colle la colonne la date est dans le format. "08/10/2022 Sat". Je voudrais quand je colle que la date soit ainsi mais sans le Sat mais plutot "08/10/2022". Je nai pas trouve d autre solution que de poursuivre la serie de dates a droite pour appliquer le format correct.

Regardez votre Sheet1 dans laquelle j'ai mis le tableau au format structuré.

Copiez vos données mais lorsque vous allez coller, posiitonnez vous en G1 et faites un collage Spécial --> Valeurs

12book27-2.xlsx (20.40 Ko)

bonjour,

Sub Onglet2()
     With Sheets("Sheet2")
          Set c = .Range("A29:M35")
          aa = c.Value2
          If Len(aa(1, 1)) = 0 Then MsgBox "vide": Exit Sub
          r = Application.Match(aa(1, 1), .Rows(1), 0)
          If IsNumeric(r) Then
               With .Cells(1, r).Resize(UBound(aa, 2), UBound(aa))
                    .Value = Application.Transpose(aa)
                    .HorizontalAlignment = xlCenter
                    .Resize(2).Font.Bold = True
                    .Resize(1).NumberFormat = "dd/mm/yy"
                    .Offset(2).Resize(UBound(aa, 2) - 2).NumberFormat = " #,##0"
                    .Resize(2).Font.FontStyle = IIf(Application.UserName = "BSA", "vet", "gras")
                    .Resize(2).Interior.ColorIndex = xlgrey
                    .Borders.LineStyle = xlContinuous
               End With
               With c
                    .ClearContents
                    .Interior.ColorIndex = WorksheetFunction.RandBetween(3, 55)
               End With
          Else
               MsgBox "date introuvable", vbCritical
          End If
     End With
End Sub

Bonjour BsAlv,

Merci beaucoup cela marche parfaitement comme attendu!

Est-il possible de juste rajouter une ligne pour copier et coller en tant que valeur les donnes entre A1:A26 jusqu'a la derniere colonne contenant des donnees? Dans mon cas se serait donc entre A1 - N26 (Derniere colonne avec des donnees).Ou si complique uniquement la derniere colonne de donnees N1-N26 dans mon cas.

Merci encore!

Bonjour Dan,

Merci mais quand je colle en valeur cela garde malgre tout le Sat dans la date.

Bonjour,

Merci mais quand je colle en valeur cela garde malgre tout le Sat dans la date.

C'est que vous n'avez pas fait ce que je vous ai écrit, à savoir Copier --> Collage SPECIAL -> Valeurs

Si vous faites un copier-coller depuis votre autre fichier, le format du fichier d'origine est conservé

Rechercher des sujets similaires à "code automatiser ajout donnees quotidiennement"