Rechercher ligne dans tableau pour insérer données

Bonjour,

ce que je cherche à faire n'est pas très facile à expliquer par des mots, alors je tente,

mais je joins surtout un fichier pour que vous compreniez mieux :

Dans un onglet A, j'ai des listes de tâches (Chaque tâche est affectée à une personne, et étiquetée "Matin" ou "Après-midi")

Dans un onglet B, j'ai un planning journalier.

Je cherche à faire une macro qui pour chaque tâche (donc chaque ligne de l'onglet A), cherche dans l'onglet B la première ligne libre correspondante à la tache ("Matin" ou "Après-midi"), et insert cette tâche (ainsi que la personne affectée) dans le Planning.

Je ne sais pas trop comment m'y prendre, alors toute aide, même minime et basique sera la bienvenue

pour m'aider dans mon développement.

31classeur1.xlsm (10.30 Ko)
28classeur1.zip (5.09 Ko)

bonjour

pas daccès a xlsm si les tableaux sont equivalents ;as tu essayé collage special avec liaison du coup plus besoin de macro

parfois c'est tout bete

a+

Bonjour tulipe_3,

j'avoue ne pas avoir compris ton message : "pas d'accès à xlsm si les tableaux sont équivalents"

Je ne cherche pas à éviter la macro, car en faite cette tache fera partie d'une plus grande macro que je développe.

Et je vois pas comment un "collage spécial avec liaison" peut rechercher la première ligne dispo...

re

excuse moi jai mal ponctué mon post ; je voulais simplement dire que je ne peux pas lire les fichiers xlsm

alors dans le vague je t'ai proposé quelque chose pour faire avancer le shmilblck ;voire sussiter une vague de reponse

a+

J'ai mis une version EXCEL 2003.

-- Ven Avr 02, 2010 2:40 pm --

Ca n'avait pas suscité une avalanche de réponse,

mais en y passant des heures j'ai réussi.

Ce n'est peut etre pas très propre, d'ailleurs si le code peut être amélioré je veux bien qu'on me dise où et pourquoi,

histoire de se perfectionner, mais ça marche.

Voici le code :

Sub Test()
Application.ScreenUpdating = False

Dim iEC As Long
Dim iAV As Long
Dim EC As Worksheet
Dim AV As Worksheet

Set EC = Worksheets("Feuil1")
Set AV = Worksheets("Feuil2")
Const CLOTURE = "Tâche plannifiée"

'Copie des lignes où dans la colonne D est écrit "Matin"
iAV = 1
For iEC = 1 To 20
    If EC.Cells(iEC, 1).Text = "Matin" Then
        For iAV = 1 To 20000
            If AV.Cells(iAV, 3).Text = "Matin" And AV.Cells(iAV, 4).Text = "" Then
                EC.Range(Cells(iEC, 2), Cells(iEC, 3)).Copy
                AV.Cells(iAV, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                EC.Cells(iEC, 4) = CLOTURE
                EC.Cells(iEC, 4).Interior.ColorIndex = 3
                EC.Cells(iEC, 4).Font.ColorIndex = 6
                Exit For
            End If
        Next
    End If
Next
End Sub
Rechercher des sujets similaires à "rechercher ligne tableau inserer donnees"