Agrémenter un tableau avec des valeurs d'un autre classeur

johndoe47

XLDnaute Nouveau
Bonjour, je réalise des rapports auxquels je dois extraire les valeurs de toute une ligne d'un tableau, et ce dans un autre classeur. Le fait est qu'il faudrait que les nouvelles valeurs viennent agrémenter le tableau de l'autre classeur (se mettre à la suite, la ligne d'après), et non remplacer les anciennes valeurs.

L'idéal serait de créer une macro qui réaliserait la tâche en n'ouvrant pas le classeur à agrémenter.

Merci de m'aider dans ma démarche.
 

ledauger

XLDnaute Nouveau
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

bonjour, je passe juste en coup de vent, et j'ajouterais que si tu ne joints pas de fichier pour "agrémenter" ta demande, elle risque de rester message mort pour un moment... bon courage
 

VDAVID

XLDnaute Impliqué
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

Une première approche :

Sub chercher()
Application.ScreenUpdating = False
Dim i&
For i = 100 To 1 Step -1
j = i - 1
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Open("Le chemin de ton fichier")
Set ws = wb.Worksheets("Le nom de la feuille où récupérer tes infos")
donnee = ws.Cells(x, y).Copy ' La plage de à récupérer
wb.Close
If Range("A" & j).Value <> "" Then
Range("A" & i).PasteSpecial (xlPasteValues)

Application.ScreenUpdating

End Sub

Il faut l'adapter en fonction de ton fichier ( Notamment des plages à définir ); les valeurs seront mises dans la première ligne vide de ton tableau.
 

johndoe47

XLDnaute Nouveau
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

@ledauger: désolé je ne peux pas le joindre, c'est un outil assez précieux développé en interne.
@VDAVID: Merci de votre rapidité, cependant j'ai testé votre macro mais un message d'erreur m'affiche "utilisation incorrecte de la propriété" concernant "Application.ScreenUpdating"
 

VDAVID

XLDnaute Impliqué
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

Re, Excusez moi , j'ai effectivement écris trop vite le dernier Application.ScreenUpdating
Rajoutez : Application.ScreenUpdating "= True"
Nouveau code :
Sub chercher()
Application.ScreenUpdating = False
Dim i&
For i = 100 To 1 Step -1
j = i - 1
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Open("Le chemin de ton fichier")
Set ws = wb.Worksheets("Le nom de la feuille où récupérer tes infos")
donnee = ws.Cells(x, y).Copy ' La plage de à récupérer
wb.Close
If Range("A" & j).Value <> "" Then
Range("A" & i).PasteSpecial (xlPasteValues)

Application.ScreenUpdating = True

End Sub
 

VDAVID

XLDnaute Impliqué
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

Bien sûr, la macro telle quelle est ici n'est pas, comme je l'ai dit, directement à lancer avec votre document, il faudrait un fichier joint ( ou les deux dans ce cas ) sans informations confidentielles pour que l'on puisse vraiment l'adapter.
 

johndoe47

XLDnaute Nouveau
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

Ok merci beaucoup, j'ai un autre soucis sur un autre document. Je joins le fichier pour vous aider. Ça se passe dans la feuille "Ajouter Stagiaire". Je dois ajouter les valeurs (D2, D3, D6, D7, D8, D9, D10) à une base rangée par session selon la session choisie dans la liste. Quand le stagiaire se trouve déjà dans la base, il ne faut rien faire.
J'ai déjà commencer la macro (TransférerVersSession)
 

Pièces jointes

  • outil gestion formation - pour internet.xlsm
    184.9 KB · Affichages: 100
Dernière édition:

VDAVID

XLDnaute Impliqué
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

Bonjour John,
Un autre test en exemple, le code de la macro est sur la feuille 5 "Ajouter stagiaire"; elle est à affecter à votre mise en forme. Les deux formules en colonnes "M" et "N" sont à laisser.
Bonne journée
 

Pièces jointes

  • Test John2.xlsm
    177.3 KB · Affichages: 110

johndoe47

XLDnaute Nouveau
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

Merci beaucoup, fallait y penser au (12 - nbre de place) etc.. merci. Y-aurait-il moyen d'éviter de mettre deux fois la même personne dans la base ? d'éviter les doublons en somme. Peut-on mettre un If dans un autre ? comme un imbriquement de fonction SI()
 

johndoe47

XLDnaute Nouveau
Re : Agrémenter un tableau avec des valeurs d'un autre classeur

L'idéal serait nom + prénom + société. Après if(session choisie = session possible) est ce qu'on pourrait remettre une fonction if(nom + prénom + société déjà présent dans la base, msgbox, etc...) ?
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 351
Membres
102 871
dernier inscrit
Maïmanko