Code VBA import colonnes

skin373

XLDnaute Nouveau
Bonsoir,

je cherche un code VBA permettant l'import d'une partie de données d'une autre feuille excel.
La base source étant énorme, je cherche à savoir s'il y a un moyen d'importer uniquement une sélection de colonne définis dans la feuille qui reçoit l'import.
Ci joint un fichier.

Merci par avance.
 

Pièces jointes

  • Import_selection.xlsm
    14.2 KB · Affichages: 38
  • Import_selection.xlsm
    14.2 KB · Affichages: 40
  • Import_selection.xlsm
    14.2 KB · Affichages: 44

Modeste

XLDnaute Barbatruc
Re : Code VBA import colonnes

Bonjour skin373,

Tu ne précises pas où sont stockées les données à recopier, ni le nombre de lignes concernées ... Le code ci-dessous, collé dans un module standard permettrait de copier les valeurs des colonnes renseignées, si elles figurent dans une feuille nommée "Source" dans le même classeur. 30 lignes sont recopiées (la hauteur des cellules colorées dans ton exemple).
VB:
Sub test()
Set src = Sheets("Source")
With Sheets("Import")
    src.Cells(1, .[B2]).Resize(30, 1 + .[B3] - .[B2]).Copy .[E1]
End With
End Sub
 

skin373

XLDnaute Nouveau
Re : Code VBA import colonnes

Bonsoir Modeste,

merci pour ce code qui correspond à ma demande.
Je débute en VBA et j'en apprend tous les jours avec vous.
J'aimerais savoir s'il était possible de rassembler les 2 codes qui sont dans le fichier en un seul, à savoir

1 - Ouvrir le classeur source qui se trouve dans un autre fichier (macro Importation base)
2 - Importer seulement les colonnes de ce classeur base qui sont renseignés, identifiées dans l'onglet import.

Merci par avance.

Skin 373.
 

Pièces jointes

  • Import_selection.xlsm
    53.4 KB · Affichages: 27
  • Import_selection.xlsm
    53.4 KB · Affichages: 29
  • Import_selection.xlsm
    53.4 KB · Affichages: 45

Modeste

XLDnaute Barbatruc
Re : Code VBA import colonnes

Bonjour skin373, le forum,

Je ne suis pas certain de bien comprendre: au moment où tu importes tes données, j'imagine que tu ne sais pas encore quelles colonnes tu vas extraire? Donc les n° de colonnes ne sont pas encore connus (les anciennes dates ne correspondront plus nécessairement aux dates qui t'intéressent :confused:) ... alors comment les deux parties de code pourraient-elles s'exécuter "en même temps"?

D'autre part, si tu cherches les 6 colonnes (correspondant à la semaine en cours ou une semaine au choix, dimanche exclu), il n'est absolument pas nécessaire de passer par une macro: si tu importes les données dans la feuille "Base", de simples formules devraient faire l'affaire en feuille Import!?
 

skin373

XLDnaute Nouveau
Re : Code VBA import colonnes

Bonjour Modeste et le Forum,

désolé de ne pas avoir répondu de suite, mais comme tous le monde j'étais charlie ces derniers jours.
J'éclaircie ma demande qui a été en partie comprise par modeste.
En effet, ma base est un planning qui couvre 2 années et qui se trouve dans un fichier partagé parmi d'autres onglets.
Le fichier est extrêmement lourd (lenteur à l'ouverture etc..).
Je pensais donc passer par une macro import afin de pouvoir importer uniquement les données qui concernent la semaine souhaitée début et fin de semaine identifiées par les n° de colonnes en cellules B2 et B3.
Mais s'il y a un autre moyen, je suis preneur.

Merki.
 

skin373

XLDnaute Nouveau
Re : Code VBA import colonnes

Bonsoir Modeste,

merci pour la réponse... J'avais déjà pensé à utiliser la formule index - equiv.
Mais le pb, c'est que par ce biais toute modification du fichier de base sera actualisée, alors qu'il me faut extraire les données à un instant T.
Cette variable n'était pas précisée lors des messages précédents.
L'idéal serait d'extraire les données à instant T pour une période précise !!

Merci tout de même pour tes réponses qui vont m'aider à avancer.
 

Modeste

XLDnaute Barbatruc
Re : Code VBA import colonnes

Bonjour,

Une proposition par macro, donc: la copie se déclenche lors du changement de valeur dans la cellule rouge. Le code est donc à trouver dans la fenêtre de code de la feuille "Import".

J'ai prévu un ou deux tests, mais il y en aura peut-être à ajouter?

J'ai continué sur l'idée de 6 colonnes recopiées (mais le départ sera-t-il toujours un lundi??) et de 30 lignes ... jette un oeil, teste et dis-nous!
 

Pièces jointes

  • import-colonnes (skin373).xlsm
    55.4 KB · Affichages: 60

skin373

XLDnaute Nouveau
Re : Code VBA import colonnes

Bonsoir Modeste,

je viens de lancer plusieurs tests et c'est parfait ;)....Exactement ce que je voulais.
Pour info, l'extraction se fait bien sur 6 jours et donc par défaut avec un départ le lundi.

Encore Merci et à bientôt sur le forum.
 

Discussions similaires

Réponses
12
Affichages
332
Réponses
7
Affichages
371
Réponses
2
Affichages
121

Statistiques des forums

Discussions
312 329
Messages
2 087 330
Membres
103 519
dernier inscrit
Thomas_grc11