Importer données des cellules d'un fichier vers un autre

Bonjour,

Je viens vers vous aujourd'hui car je souhaiterais savoir comment faire pour importer les données des

10t-import.xlsx (27.02 Ko)

cellules d'un fichier "Sheets("FICHE_TRANSMISSION") vers un autre "Sheets("Tableau_affaires") . J'ai commencé un petit bout de code qui fonctionne avec une cellule mais je ne trouve pas comment le faire avec plusieurs. Je souhaiterais vraiment que sur chaque import de données les informations ce mettent sur la dernière ligne de mon tableau.

Je vous remercie d'avance pour vos réponses, en vous souhaitant une très agréable journée.

Cordialement,

Nico

On ne peut pas t'aider si ton code est protéger par un mots de passe

Bonjour Corsican, bonjour le forum,

Pourquoi un fichier bloqué si tu as besoin d'aide ?!... N'importe quoi....

Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OS As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TD As ListObject 'déclare la variable TD (Tableau Destination)
Dim R As Range 'déclare la variable R (Recherche)
Dim LI As Integer 'déclare la variable LI (LIgne)

Set CS = Workbooks("t-import.xlsx") 'définit le classeur source CS
0 Set OS = CS.Worksheets("FICHE_TRANSMISSION") 'définit l'onglet source OS
Set CD = Workbook("template-suivi-des-marches-2022-v2-1.xlsm") 'définit le classeur destination CD
Set OD = CD.Worksheets("Ben_tiens_va_savoir_avec_un_code_bloqué") 'définit l'onglet destination OD
Set TD = OD.ListObjects("TABLEAU_AFFAIRE") 'définit la tableau destination TD
R = TD.ListColumns(1).Range.Find("") 'définit la recherche R (recherche du vide dans la colonne 1 de TD)
If R Is Nothing Or TD.ListRows = Nothing Then 'condition : si aucune occurrence trouvée ou si TD n'a pas de ligne
    TD.ListRows.Add 'ajoute une ligne à TD
    LI = TD.ListRows.Count 'définit la ligne LI
Else 'sinon (au moins une occurrence trouvée)
    LI = R.Row - TD.HeaderRowRange.Row 'définit la ligne LI (ligne de la première occurrence trouvé - la ligne des en-têtes de TD)
End If 'fin de la condition
OS.Range("Ta_Cellule").Copy TD.DataBodyRange(LI, 1) 'option 1 : copie / colle
TD.DataBodyRange(LI, 1) = OS.Range("Ta_Cellule").Value 'option 2 : récupère la valeur
'idem pour la suite en modifiant l'adresse de la cellule et en adaptant la colonne de TD...
End Sub

[Édition]

Bonjour Arthur, nos posts se sont croisés...

Bonjour le forum,

Vraiment désolé

pour la gène occasionnée, j'ai été trop vite sur ce coup là.

Merci pour ton retour ThauThème ! Trop cool !

J'aimerais quand même pouvoir ouvrir une boîte de dialogue pour ouvrir un fichier de mon choix sans avoir a le rentrer dans mon code et exercer le même principe que mon petit bout de code.

Merci d'avance et encore désolé pour le MDP

Nico

Bonjour le fil, bonjour le forum,

Pas de problème Nico. Le petit bout de code qui manque est relativement simple mais là il fut que je parte. Si tu n'as pas eu de réponse je te donnerait ça ce soir ou demain. Je reste attentif à ton fil...

Merci beaucoup !

Bonjour Nico, bonjour le forum,

Ça donnerait ça :

Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TD As ListObject 'déclare la variable TD (Tableau Destination)
Dim OF As FileDialog 'déclare la variable OF (Ouverture de Fichier)
Dim CD As Workbook 'déclare la variable CS (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OS (Onglet Destination)
Dim R As Range 'déclare la variable R (Recherche)
Dim LI As Integer 'déclare la variable LI (LIgne)

Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = CD.Worksheets("Tableau_affaires") 'définit l'onglet destination
Set TD = OD.ListObjects(1) 'définit la tableau destination TD (là aussi il faut qu'il n'y ait qu'un seul tableau dans l'onglet)
Set OF = Application.FileDialog(msoFileDialogFilePicker) 'définit l'ouverture de fichier OF
OF.AllowMultiSelect = False 'n'autorise la sélection que d'un seul fichier
OF.Show 'affiche la boîte de dialogue
'si un fichier est sélectionnée, définit la classeur source CS en l'ouvrant
If OF.SelectedItems.Count > 0 Then Set CS = Workbooks.Open(OF.SelectedItems(1))
Set OS = CS.Worksheets(1) 'définit l'onglet source OS (le premier du classeur)
Set R = TD.ListColumns(1).Range.Find("") 'définit la recherche R (recherche du vide dans la colonne 1 de TD)
If R Is Nothing Or TD.ListRows Is Nothing Then 'condition : si aucune occurrence trouvée ou si TD n'a pas de ligne
    TD.ListRows.Add 'ajoute une ligne à TD
    LI = TD.ListRows.Count 'définit la ligne LI
Else 'sinon (au moins une occurrence trouvée)
    LI = R.Row - TD.HeaderRowRange.Row 'définit la ligne LI (ligne de la première occurrence trouvé - la ligne des en-têtes de TD)
End If 'fin de la condition
OS.Range("Ta_Cellule").Copy TD.DataBodyRange(LI, 1) 'option 1 : copie / colle
TD.DataBodyRange(LI, 1) = OS.Range("Ta_Cellule").Value 'option 2 : récupère la valeur
'idem pour la suite en modifiant l'adresse de la cellule source et en adaptant la colonne de TD (destination)
End Sub

Merci beaucoup pour ton retour, c'est vraiment top. Bon dimanche !

Rechercher des sujets similaires à "importer donnees fichier"