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 !

barry64

XLDnaute Nouveau
Bonjour je commence sur les VBA sur Excel, j'ai de petite base donc excusez moi si le code vous font mal au yeux. 🙂

Serait-il possible de m'aider?

Ma problématique est que je veux copier les cellules d'une colonne ou l'en-tête est une date, par apport à ma date de référence sur ma première feuille.
 

Pièces jointes

Solution
Evidemment cela fait reprendre pas mal de chose dans l'outil :
1- Dans la feuille présence, deux listes déroulantes pour la base à utiliser et la date concernée.
2- Dans l'onglet config, tout est automatisé. Les instructions sont en commentaires.
Bonjour Barry,
Avec ce que j'ai compris, en PJ avec cette macro dans la feuille Présence - 18. Elle s'active sur sélection de la feuille ou en changeant la date :
VB:
Sub Worksheet_Activate()
    MAJ
End Sub
Sub MAJ()
Application.ScreenUpdating = False
IndexW = 5
Sheets("Présence - 18").Range("D5:G34").ClearContents
If Not IsError(Application.Match(Sheets("Présence - 18").[F1], Sheets("Base de données - 18").[1:1], 0)) Then
    IndexR = Application.Match(Sheets("Présence - 18").[F1], Sheets("Base de données - 18").[1:1], 0)
    Set Ws = Sheets("Base de données - 18")
        For Ligne = 2 To Ws.Range("C65500").End(xlUp).Row
            With Sheets("Présence - 18")
                If Ws.Cells(Ligne, IndexR) = "A l'heure" Or _
                    Ws.Cells(Ligne, IndexR) = "Retard" Then
                    .Cells(IndexW, 4) = Ws.Cells(Ligne, 13)
                    .Cells(IndexW, 5) = Ws.Cells(Ligne, 2)
                    .Cells(IndexW, 6) = Ws.Cells(Ligne, 3)
                    .Cells(IndexW, 7) = Ws.Cells(Ligne, 16)
                    IndexW = IndexW + 1
                End If
            End With
        Next Ligne
End If
End Sub
Je ne remonte que les Présent et Retard.
 

Pièces jointes

Bonjour Sylvanu, merci de prendre du temps pour moi,

Ce que tu as créer à l'air intéressant, cela prendra t'il en compte à chaque fois que je rajoute une date après chaque entrainement?

Est ce normal que cela me change les données dans ma base de données - 18? je perds l'email du parent n°1
 
Re,
1- En fait la BD a été polluée durant la mise au point. J'ai remis carré dans la PJ. Sorry, je ne m'en étais pas rendu compte.
2- Oui bien évidemment. C'est le rôle de :
VB:
IndexR = Application.Match(Sheets("Présence - 18").[F1], Sheets("Base de données - 18").[1:1], 0)
IndexR est l'index de lecture. Il recherche dans la ligne 1 où se trouve la date concernée. Si la date n'est pas trouvée, il se contente de vider la matrice de sortie.
 

Pièces jointes

Bah, elle est vide.
Par contre j'utilise les N° de colonnes pour copier les valeurs. Donc si vous la supprimez il faut reprendre les index :
VB:
                    .Cells(IndexW, 4) = Ws.Cells(Ligne, 13)
                    .Cells(IndexW, 5) = Ws.Cells(Ligne, 2)
                    .Cells(IndexW, 6) = Ws.Cells(Ligne, 3)
                    .Cells(IndexW, 7) = Ws.Cells(Ligne, 16)
en mettant (N-1) soit 12,1,2,15.

ou si vous êtes courageux vous faites un match sur chaque entête pour trouver la bonne colonne. Cela devient alors totalement transparent. 🙂
 
Bonjour tout le monde je suis debutant en vba et j'aimerai que vous m'aidiez a integrer un code dans mon programme qui me permetterait de masquer les colonnes qui n'ont pas de contenu a partir du colonnne H à L. j'ai beau essai mais jy arrive pas
Merci d'avance et je compte sur vous.
 
Bonjour Mously et bienvenu sur XLD,
Il vous faut ouvrir un nouveau post, c'est la règle. Un problème un post. Sinon on ne s'y retrouve pas.
Et essayez d'être un peu plus précis, ou mieux fournissez une petit fichier test, c'est plus parlant.
 
Sylvanou?

Si tout fonctionne bien, mais j'aimerais faire en sorte car mon réel document comprend 4 feuilles de présence, d'en faire une seule suite à un liste déroulante pour choisir ma catégorie et du coup modifier les dates de ma liste déroulante c'est faisable?
 
- 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
6
Affichages
312
Réponses
4
Affichages
490
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
191
Retour