XL 2016 Macro rechercher valeur cellule + copier-coller ligne dans tableau

NonoXLS

XLDnaute Nouveau
Bonjour,

J'aurai besoin d'aide pour une macro que je ne connais pas et n'arrive à pas faire d'après les explication sur internet que j'ai trouvé...

J'ai créé un formulaire pour le décompte des heures des employés. Et quand la personne qui l'utilise valide les informations comme par exemple à cette date là, j'avais congé de telle heure à telle heure. Après ça il y a une validation à faire via un bouton.
Ce bouton exécute une macro qui remplie toutes les informations données dans une nouvelle feuille dans un tableau. Chaque nouvelles entrées dans le tableau, les dernières informations se mettent à la première ligne de mon tableau sous les titres des colonnes. Jusque là impeccable.

Mais je voudrais qu'à partir de là, une nouvelle macro qui va rechercher la date précisée dans toutes les feuilles sélectionnées du classeur, dans un tableau précis (les noms des feuilles sont les mois de l'année et la première colonne de chaque tableau qui se trouvent exactement à la même position de chaque feuille, sont les dates à rechercher. Et après avoir trouvé, colle les nouvelles valeurs à la place de la ligne entière du tableau...

J'espère que quelqu'un pourra m'aider...... merci d'avance
 

NonoXLS

XLDnaute Nouveau
ce que je recherche à faire comme code ça serait quelque chose comme ça :

si la valeur de la cellule A2 de la feuille "saisie" = janvier ou février ou mars ou ... (créer un boucle pour les mois) alors
Find ou cellsSearch(Range("B7:B37") sur la feuille janvier la valeur de la cellule B2 de la feuille "saisie"

Active la cellule de la valeur trouvée ActivCell("Bvaleurtrouvée:Uvaleurtrouvée")
coller les valeurs des cellules C2:U2 de la feuille "saisie" à la place des valeurs actuelles



Est-ce que quelqu'un saurait faire quelque chose comme ça ? HELP !
 

Nairolf

XLDnaute Accro
Salut,

Un fichier exemple nous aiderait à mieux cerner ton problème et donc à te proposer une solution.

Concernant le bout de code suivant :
VB:
ActivCell("Bvaleurtrouvée:Uvaleurtrouvée")
il faut plutôt l'écrire ainsi :
Code:
ActivCell("B" & valeurtrouvée & ":U" & valeurtrouvée)
 

Nairolf

XLDnaute Accro
Salut,

Après un peu de temps, je te propose la solution suivante :
VB:
Sub Recherche()

Dim Trouve As Range, PlageDeRecherche As Range
Dim AdresseTrouvee As String, Onglet_Recherche As String
Dim LigneValeurtrouvee
Dim i As Double, nbligne As Double

nbligne = Application.CountA(Range("A:A"))
For i = 2 To nbligne
    Onglet_Recherche = Worksheets("Saisies").Range("A" & i)
    Set PlageDeRecherche = Worksheets(Onglet_Recherche).Columns(2)
    LigneValeurtrouvee = Application.Match(Worksheets("Saisies").Range("B" & i), PlageDeRecherche, 0)
    If Not IsError(LigneValeurtrouvee) Then
        Worksheets("Saisies").Select
        Worksheets("Saisies").Range("C" & i & ":U" & i).Select
        Selection.Copy
        Worksheets(Onglet_Recherche).Select
        Worksheets(Onglet_Recherche).Range("C" & LigneValeurtrouvee).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End If
    Set PlageDeRecherche = Nothing
    Set LigneValeurtrouvee = Nothing
Next i

End Sub
A noter que j'ai considéré que le mois était rentré en toutes lettres dans la colonne "A:A" de l'onglet "Saisies".
 

Discussions similaires

Réponses
2
Affichages
185
Haut Bas