Base de données: ajouter une colonne avec date du jour

Bonjour à tous,

Je suis gros débutant en VBA :)! Je fais de la gestion de base de donnée et je souahiterais automatiser le plus possible les tâches.

J'ai un workbook avec plusieurs sheets. En collant une plage de données de la sheet 2 vers la sheet 1 je cherche à rajouter sur la colonne de droite (sur un nombre de lignes limité à la plage de données que je souahite coller) la date du jour.

Si quelqu'un a une idée!!!!!

Merci beaucoup pour votre aide.

5 réponses

  1. Contributeur
    bonjour,

    Avec cette macro événementielle dans la sheet 1:

    Private Sub Worksheet_Change(ByVal sel As Range)
    Dim lig As Long, col As Integer
    If Application.CutCopyMode Then
        col = sel.Columns.Count + sel.Column
        Application.EnableEvents = False
        For lig = 0 To sel.Rows.Count - 1
            Cells(sel.Row + lig, col).Value = Date
        Next lig
        Application.EnableEvents = True
    End If
    End Sub

    Tu peux positionner ton collage à n'importe quel endroit de la feuille mais il faut qu'il reste une colonne libre à droite.

    Toujours zen
    La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
    0
    1. Salut!

      Je vais essayer ta proposition! Merci mille fois pour la rapidité de ta réponse.
      0
      1. Contributeur
        RE: j'ai un peu simplifié la macro.
        0
      2. A quel endroit? excuse moi de demander mais je vois pas... Ma macro ci-dessous est située dans module 1
        0
    2. Re!

      en fait le collage de ma plage de cellule s'effectue de la sorte:

      Sub GlobalArchivageCash()

      Sheets("WeeklyCash").Select
      ligfinnn = Cells(Cells.Rows.Count, "E").End(xlUp).Row
      Range("A2:E" & ligfinnn).Cut

      Dim DLLL As Long

      With Sheets("Datas")
      DLLL = .Range("A65536").End(xlUp).Row
      If Not .Cells(DLLL, 1) = "" Then DLLL = DLLL + 1
      End With '

      Sheets("Datas").Select
      Cells(DLLL, 1).Select
      ActiveSheet.Paste

      Columns("A:E").AutoFit

      Columns("E:E").Select
      With Selection.Font
      .Name = "Calibri"
      .Size = 9
      .Bold = True
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 3
      End With
      End Sub

      et en executant cette macro j'aimerais que dans la colonne de droite soit ajouté une colonne avec la date du jour... Je ne saurais pas intégrer la macro que tu me proposes dans celle ci :(((((. Tu saurais par hasard?
      0
      1. Contributeur
        bonjour,

        Ta question faisait croire que tu collais manuellement, d'où ma réponse.

        Voici comment j modifierai ta macro pour obtenir le résultat souhaité :

        Sub GlobalArchivageCash()
        Dim DLLL As Long, ligfinnn As Long
        With Sheets("Datas")
            DLLL = .Range("A65536").End(xlUp).Row + 1
            Sheets("WeeklyCash").Select
            ligfinnn = Cells(Cells.Rows.Count, "E").End(xlUp).Row
            Range("A2:E" & ligfinnn).Cut _
                Destination:=.Cells(DLLL, 1)
            For DLLL = DLLL To DLLL + ligfinnn - 2
                Cells(DLLL, "F").Value = Date
            Next DLLL
        End With
        
        Columns("A:E").AutoFit
        
        Columns("E:E").Select
        With Selection.Font
        .Name = "Calibri"
        .Size = 9
        .Bold = True
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
        End With
        End Sub
        
        0
        1. Tellement sympa! honnettement merci et congrats pour le level en VBA! heureusement pour moi que tu es là :). Merci j'essaye ça!
          0