Copie d'une colonne dans une autre colonne en fonction d'une date

  • Initiateur de la discussion Initiateur de la discussion XKF763
  • 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 !

X

XKF763

Guest
Bonjour à tous,

Je suis totalement néophyte en macros Excel.
Dans le fichier ci-joint, je souhaite ajouter un bouton qui me recopie les données d'une plage de cellules vers une colonne d'un tableau en fonction d'une date (la date du jour en l'occurence).
Il s'agit pour moi d'archiver les données saisies chaque jour.

Merci d'avance
Régis
 

Pièces jointes

Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Bonjour Fred0o,

et merci pour cette réponse rapide et efficace.

Je souhaiterais pouvoir effectuer la copie d'une feuille vers une autre feuille du même classeur. J'ai bien essayé d'adapter ta macro mais je n'y suis pas parvenu 🙁

Je te renvoie le fichier avec les 2 feuilles.

Encore un grand merci
Régis
 

Pièces jointes

Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Bonjour à tous
Ceci, peut-être ?
Code:
[COLOR="DarkSlateGray"][B]Sub recopier()
Dim i&, dRef As Date, dates()
   dRef = Sheets("Saisie").Range("B4").Value
   dates = Sheets("BD").Range("D4:AH4").Value
   For i = 1 To UBound(dates, 2)
      If dRef = dates(1, i) Then
         With Sheets("Saisie")
            .Range(.Cells(6, 2), .Cells(.Rows.Count, 2).End(xlUp)).Copy Destination:=Sheets("BD").Range("C6").Offset(0, i)
         End With
         Exit For
      End If
   Next i
   If i > UBound(dates, 2) Then MsgBox "La date " & Format(dRef, "d/mm/yyyy") & " n'existe pas dans la feuille BD."
End Sub[/B][/COLOR]
ROGER2327
#3918


Jeudi 5 Tatane 137 (Saint Arsouille, patricien, SQ)
30 Messidor An CCXVIII
2010-W28-7T00:58:36Z
 
Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Bonjour,

Bonjour, Roger 🙂

Une autre petite solution :

Code:
Sub recopier()
Dim Col As Byte
With Sheets("BD")
    On Error GoTo suite
    Col = Application.Match(CLng(Range("B4").Value), .Rows(4), 0)
    Range("B6:B35").Copy .Cells(5, Col)
    Exit Sub
End With
suite:  MsgBox "La date n'existe pas dans l'onglet BD"
End Sub

Bon dimanche
 
Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Re-bonjour,

J'ai essayé, mais sans succès, de transposer vos macros dans le classeur ci-joint !!!
Pour être complet, la recopie doit alimenter simultanément les feuilles BD1 et BD2 à partir de la feuille SAISIE, selon la date et sans recopier la mise en forme d'origine.
Je suis vraiment navré de vous solliciter autant !!!

Merci encore
Régis
 

Pièces jointes

Dernière modification par un modérateur:
Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Re...
Vous posez un problème, mais vous voulez en résoudre un autre...
Pour ce nouveau problème, une nouvelle réponse :
Code:
[COLOR="DarkSlateGray"][B]Sub recopier()
Dim i&, dRef As Date, dates()
   dRef = Sheets("Saisie").Range("B4").Value
   dates = Sheets("BD1").Range("B4:AF4").Value
   For i = 1 To UBound(dates, 2)
      If dRef = dates(1, i) Then
         With Sheets("Saisie")
            .Range(.Cells(6, 2), .Cells(.Rows.Count, 2).End(xlUp)).Copy Destination:=Sheets("BD1").Range("A6").Offset(0, i)
         End With
         Exit For
      End If
   Next i
   If i > UBound(dates, 2) Then MsgBox "La date " & Format(dRef, "d/mm/yyyy") & " n'existe pas dans la feuille BD1."
   dates = Sheets("BD2").Range("B4:AF4").Value
   For i = 1 To UBound(dates, 2)
      If dRef = dates(1, i) Then
         With Sheets("Saisie")
            .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp)).Copy Destination:=Sheets("BD2").Range("A6").Offset(0, i)
         End With
         Exit For
      End If
   Next i
   If i > UBound(dates, 2) Then MsgBox "La date " & Format(dRef, "d/mm/yyyy") & " n'existe pas dans la feuille BD2."
End Sub[/B][/COLOR]
ROGER2327
#3921


Jeudi 5 Tatane 137 (Saint Arsouille, patricien, SQ)
30 Messidor An CCXVIII
2010-W28-7T22:19:34Z
 
Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Bonsoir ROGER2327,

Tout d'abord, MERCI pour ta solution.
Je l'ai testé sur un autre classeur et tout fonctionne parfaitement.
Seul petit HIC !!! J'aimerais faire un collage spécial valeur de mes données et je n'y parviens pas malgré de longues recherches sur le forum.
Avez-vous une solution à me proposer?

Encore désolé pour mes balbutiements sur ce forum (première utilisation) 😕

Bonne soirée
Régis
 
Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Re...
(...)
Je l'ai testé sur un autre classeur et tout fonctionne parfaitement.
Seul petit HIC !!! J'aimerais faire un collage spécial valeur de mes données et je n'y parviens pas malgré de longues recherches sur le forum.
(...)
Changeons de problème, changeons de solution...
Code:
[COLOR="DarkSlateGray"][B]Sub recopier()
Dim i&, dRef As Date, dates()[COLOR="Sienna"], tmp[/COLOR]
   dRef = Sheets("Saisie").Range("B4").Value
   dates = Sheets("BD1").Range("B4:AF4").Value
   For i = 1 To UBound(dates, 2)
      If dRef = dates(1, i) Then
         With Sheets("Saisie")
            [COLOR="Sienna"]tmp = .Range(.Cells(6, 2), .Cells(.Rows.Count, 2).End(xlUp)).Value
            Sheets("BD1").Range("A6").Offset(0, i).Resize(UBound(tmp, 1), 1).Value = tmp[/COLOR]
         End With
         Exit For
      End If
   Next i
   If i > UBound(dates, 2) Then MsgBox "La date " & Format(dRef, "d/mm/yyyy") & " n'existe pas dans la feuille BD1."
   dates = Sheets("BD2").Range("B4:AF4").Value
   For i = 1 To UBound(dates, 2)
      If dRef = dates(1, i) Then
         With Sheets("Saisie")
            [COLOR="Sienna"]tmp = .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp)).Value
            Sheets("BD2").Range("A6").Offset(0, i).Resize(UBound(tmp, 1), 1).Value = tmp[/COLOR]
         End With
         Exit For
      End If
   Next i
   If i > UBound(dates, 2) Then MsgBox "La date " & Format(dRef, "d/mm/yyyy") & " n'existe pas dans la feuille BD2."
End Sub[/B][/COLOR]
ROGER2327
#3927


Vendredi 6 Tatane 137 (Saints Robot et Cornard, citoyens, SQ)
1er Thermidor An CCXVIII
2010-W29-1T21:45:30Z
 
Re : Copie d'une colonne dans une autre colonne en fonction d'une date

Super, ça marche !!!
Merci infiniment ROGER2327 🙂🙂🙂

Je promets d'être plus précis la prochaine fois 😱

Bien cordialement
Régis
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour