copie texte d'une cellule en fonction d'une date.

ced30l

XLDnaute Nouveau
Bonjour,

Celà faisait un sacré bout de temps que je n'étais pas venu sur ce site.
Suite à un changement de boulot je n'utilisais plus beaucoup excel, mais l'autre jour lors d'une discussion, mon chef a appris qu'il y a quelque années je faisait pas mal de VBA sous Excel, et la il me demande de faire un petit fichier sous excel.

Problème c'est que lorsque j'ai commencé à regardé, je me suis rendu compte que quand on pratique pas on oublie vite.

Alors voilà, c'est pas très compliqué mais je bloque, dans une feuille j'ai un tableau avec en colonne un calendrier (01/01; 02/01; 03/01; etc...) et en ligne le nom des personnes. la on met une croix ou un "1", pour chaque jour ou Mr A fait son tour de permanence.

Ensuite dans une autre feuille, cette fois, on gère par mois, et la il faudrait recopier le nom de la personne sur les jours ou il a été pointé sur le 1er tableau

Je joins un fichier, ce sera plus simple pour les explications.

Merci à vous.
 

Pièces jointes

  • Tourderôle.xlsx
    12.3 KB · Affichages: 22
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Recopie de cellule selon condition

Bonjour Ced,

Voir avec cette macro à placer dans le module de ta feuille Feuil2
VB:
Option Explicit
Private Sub CommandButton1_Click()
Dim Cel As Range
[A4].CurrentRegion.Offset(1).ClearContents
With Feuil2
  For Each Cel In .[B2].Resize(1, .[IV2].End(xlToLeft).Column - 1)
    [A65536].End(3)(2) = Cel
    [B65536].End(3)(2) = .Cells(Cel.End(4).Row, 1)
  Next
End With
End Sub

A te relire

Martial
 

Yaloo

XLDnaute Barbatruc
Re : Recopie de cellule selon condition

Re,

J'avais un peu modifié ton fichier, c'est pour ça qu'avec seulement la macro, ce n'était pas top.
Ci-dessous ton fichier modifié seulement au niveau de la macro, les données sont effacées dans les colonnes A et B de la feuil2 puis complètement réécrite.

A+
 

Pièces jointes

  • Tourderôle.xlsm
    24.5 KB · Affichages: 21
  • Tourderôle.xlsm
    24.5 KB · Affichages: 29

Yaloo

XLDnaute Barbatruc
Re : Recopie de cellule selon condition

Désolé, je n'avais pas vu la feuil3, ce qui m'aurai permit de comprendre un peu mieux ta demande.

J'ai basculé le bouton sur la feuil1 et modifié la macro. Il faut impérativement que tes onglets soient déjà créé avec les dates concernant chaque mois.

A+
 

Pièces jointes

  • Tourderôle.xlsm
    24.7 KB · Affichages: 37
  • Tourderôle.xlsm
    24.7 KB · Affichages: 31

Yaloo

XLDnaute Barbatruc
Re : Recopie de cellule selon condition

Oui, avec la macro en place, une année par archive.

Si tu veux faire une archive pour l'ensemble, il faut repenser la macro.
Si sur tes feuilles, tu n'as que la date et le nom comme dans l'exemple, on peut aussi faire une feuille par année avec les mois décalés en largeur ou alors une feuille par mois et année, 01 2016, 02 2016, ..., 12 2016, 01 2017, 02 2017 etc...

A+
 

ced30l

XLDnaute Nouveau
Re : Recopie de cellule selon condition

Je suis de retour,

Alors après avoir écrit le code sur mon fichier j'ai une erreur rapide dès l'écriture.
Sur la ligne " Dim Cel As Range, 1& ", j'ai Erreur de syntaxe.
Pour info aussi je me suis trompé je travaille sous excel 2010 et non 2007 comme annoncé au début.

Si vous avez la solution....

Merci.
 

Yaloo

XLDnaute Barbatruc
Re : Recopie de cellule selon condition

Bonjour ced, le forum,

Normalement si c'est écrit tel quel, il ne doit pas y avoir de problème, que ce soit avec 2007 ou 2010.
Regarder dans l'onglet ONGLET puis REFERENCE, s'il n'y a pas une référence MANQUANT il faut alors la décocher ou la réinstaller.
Sinon je ne vois pas.

A+

Martial
 

ced30l

XLDnaute Nouveau
Re : Recopie de cellule selon condition

Re, alors j'ai trouvé mon bug, ce n'est pas 1& mais l&, sauf qu'avec la police utilisé pour imprimé on voyait à peine la différence.
Maintenant j'ai comme m^me un bug, sur la ligne n°2 il me met erreur de compilation 1004.

Vu que je suis passé sur le tableau source, j'ai du modifier un truc ou deux. J'ai remplacé le B2 par B6, emplacement de la première date et j'ai changé la numéro de colonne pour l'écriture, mais il en veux pas.

serait-il possible de m'expliquer la ligne 2 que j'ai du mal à décrypter , en espérant que j'arrive à comprendre mon erreur.

Merci.
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Recopie de cellule selon condition

Bonjour Ced, le forum,

Désolé je n'avais pas vu ta demande.
Code:
Private Sub CommandButton1_Click()
Dim Cel As Range, l&
  For Each Cel In [B2].Resize(1, [IV2].End(xlToLeft).Column - 1)
    With Sheets(Month(Cel) + 1)
      .Cells(Application.Match(Cel, .Columns(1), 0), 2) = Cells(Cel.End(4).Row, 1)
    End With
  Next
End Sub

La 2ème ligne
[B2].Resize(1, [IV2].End(xltoleft).Column -1) va être la plage dans laquelle nous allons travailler.
Je décortique :
On part de B2 : [B2]
Resize permet de redimensionner ta plage, le 1 va définir le nombre de ligne : donc 1 ligne. Le [IV2].End[xlToLeft).Column - 1 va définir le nombre de colonne
En prenant [IV2] nous prenons la dernière colonne de la ligne 2 de la feuille Excel (quand c'est un fichier xls), puis avec End(xlToleft).Column nous recherchons la dernière colonne de la ligne 2 pleine en allant de IV2 vers la gauche, cela nous donne le numéro de cette cellule pleine, donc nous connaissons le nombre. Comme A2 est vide on enlève 1.

Ensuite pour toutes les cellules (que nous appelerons Cel) comprises dans cette plage, nous allons appliquer l'envoi dans les feuilles souhaitées.

J'espère avoir répondu à ta demande.

A+

Martial
 

ced30l

XLDnaute Nouveau
Re : Recopie de cellule selon condition

Bonjour,

Merci, je commence à reprendre des habitudes, donc maintenant cette ligne fonctionne.
ça plante à la dernière ligne, si je mets ma souris sur "cel" j'ai bien en surbrillance la première date, et sur la fin de la ligne, j'ai bien le nom à recopier, mais pas de recopie.

Ensuite pas simple je ne peux pas mettre ton fichier sur une clef et l'amener au boulot, je suis obliger de travailler le soir à la maison et tout recopier et tester le lendemain au boulot.

Y a t il quelque-chose de spécial à faire sur les feuilles des mois, j'ai ouvert des feuilles "septembre", "octobre", "etc...", j'ai supprimer toutes les lignes et colonne en trop, c'est à dire 1ère colonne la date, 1ère ligne le 01 du mois concerné. mais non.
 

Discussions similaires

Statistiques des forums

Discussions
312 161
Messages
2 085 848
Membres
103 004
dernier inscrit
ponas