Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Importer les données de plusieurs feuilles dans une seul feuille
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 !
Je souhaiterais a partir d'une macro pouvoir importer tout le contenu des onglets Tarif ABC + Tarif DHV + Tarif CUV dans l'onglet Base article.
En ayant juste a cliquer sur importation des articles.
Re : Importer les données de plusieurs feuilles dans une seul feuille
Bonsoir,
Voici une proposition :
VB:
Sub Import()
Dim i As Integer
Dim rg As Range, rgP As Range
Dim wsBase As Worksheet
Set wsBase = ThisWorkbook.Sheets("Base article")
' on suppose que la base est le 1er onglet, donc on commence au 2e
For i = 2 To Sheets.Count
Set rg = Sheets(i).Range("A2:D" & Sheets(i).Range("D65536").End(xlUp).Row)
Set rgP = wsBase.Range("A65536").End(xlUp).End(xlUp).Offset(1, 0) 'on doit faire 2x .end(xlup) parce que c'est une table
rg.Copy rgP
Next i
End Sub
Re : Importer les données de plusieurs feuilles dans une seul feuille
Bonjour Grand chaman,
La macro marche bien. Par contre ci on l'a relance une deuxième fois ça marche plus.
Je pense qu'il faudrait effacer l'ensemble du contenu de la feuille Base d'article a chaque lancement de la macro.
Et une petite question subsidiaire. Ci l'on a plus de 3 onglet d'article a importer que faut il modifier dans la macro.
Re : Importer les données de plusieurs feuilles dans une seul feuille
Bonjour,
Voici la macro modifiée qui efface les données de l'onglet Base au départ.
L'importation des données commence au 2e onglet et se rend jusqu'au dernier (Sheets.Count). Donc, les données de toutes les onglets sont importées (sauf le 1er). S'il y a des onglets que tu ne veux pas importer les données, tu devras ajouter une condition dans la boucle "For i = ...", en vérifiant le nom de l'onglet par exemple.
VB:
Sub Import()
Dim i As Integer
Dim rg As Range, rgP As Range
Dim wsBase As Worksheet
Set wsBase = ThisWorkbook.Sheets("Base article")
'effacer les données existantes à partir de la ligne 2
wsBase.Range("A2:D" & wsBase.Range("D65536").End(xlUp).Row).ClearContents
' on suppose que la base est le 1er onglet, donc on commence au 2e et on se rend au dernier
For i = 2 To Sheets.Count
Set rg = Sheets(i).Range("A2:D" & Sheets(i).Range("D65536").End(xlUp).Row)
Set rgP = wsBase.Range("A65536").End(xlUp).End(xlUp).Offset(1, 0) 'on doit faire 2x .end(xlup) parce que c'est une table
rg.Copy rgP
Next i
End Sub
Re : Importer les données de plusieurs feuilles dans une seul feuille
Re-bonjour Grand chaman,
J'aurais encore besoin de tes services.
Je souhaiterais arrondir les prix de l'ensemble de la colonne B à la valeur supérieure.
J'ai bien trouver un code vba mais je sais pas comment l'insérer dans ta formule.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
If Target - Int(Target) > 0 Then
Target = Int(Target) + 1
End If
End If
End Sub
Re : Importer les données de plusieurs feuilles dans une seul feuille
Je viens de me rendre compte qu'il y a un probleme avec la macro.
Celle ci copie bien les onglets. Mais au lieu de mettre les valeurs à la suite les une des autres.
Elles efface les valeurs des autres onglets. Ce qui fait que seul le dernier onglet est copier et coller au finale
- 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