Importer feuille excel d'un classeur à cibler

Fermé
garf421 Messages postés 3 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 29 novembre 2011 - 28 nov. 2011 à 14:15
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 nov. 2011 à 11:17
Bonjour à tous et merci pour les nombreuses réponses aux autres questions du forum qui m'ont permis d'utiliser excel comme j'en avais besoin jusqu'à présent.


Je souhaite créer une macro dans un classeur 1 qui me permettrait en cliquant sur un bouton, d'ouvrir une boite de dialogue pour sélectionner un autre fichier excel (classeur 2).
Cette sélection aurait pour but d'importer depuis le classeur 2 toute les données d'une feuille qui s'appellera toujours "note" par exemple, et d'intégrer ce contenu dans une feuille aussi appelé "note" dans le classeur 1.

Je ne souhaite pas faire de lien direct entre les classeurs.

L'exemple concret serait:
Dans un répertoire de mon ordi j'ai un dossier "Classes" comportant deux sous dossiers, classe A et classe B.
Chaque sous dossier contient un classeur excel de toutes les informations que je rentre sur la classe A par exemple, et un autres classeur excel d'éditeur de bulletins de note.

Avec la macro que je souhaite créer je voudrais avoir un classeur excel modèle d'éditeur de bulletins de note qui récupèrerait sur demande le contenu de la feuille "note" du classeur général de la classe A ou B .... ou X.
Ce modèle d'éditeur de bulletin de notes aura des formules qui prendront en références des cellules de sa propre feuille nommé aussi "note" pour remplir chaque bulletin en fonction du contenu importé.

Désolé pour ce message un peu long et aussi si la question a déjà été posé.
Merci si vous avez des suggestion à mon problème.





A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 nov. 2011 à 09:01
Salut,
Petites précisions complémentaires :
d'importer depuis le classeur 2 toute les données d'une feuille
La plage des donénes est fixe? toujours la même? laquelle?
0
garf421 Messages postés 3 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 29 novembre 2011
29 nov. 2011 à 10:03
Dans cette feuille le nombre de colonne est fixe par contre le nombre de ligne dépend du nombre d'élèves par exemple.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 nov. 2011 à 10:16
Alors :
1- Combien de colonnes et à partir de laquelle? (exemple 6 colonnes de A à F)
2- Qu'elle colonne est la plus longue?
0
garf421 Messages postés 3 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 29 novembre 2011
29 nov. 2011 à 11:13
Il y a 10 colonnes de A à J
La colonne A et la colonne F ont une largeur de 10
Les colonnes B, C, D, E font 7.29 de largeur
Les colonnes G,H,I et J font 7 de largeur

La première ligne est composé de deux cellules fusionnées prenant respectivement les cellules A,B,C,D,E et les cellules F,G,H,I,J
Les lignes deux et trois sont composées de cellules fusionnés pour formé un titre de chaque colonne: A2 fusionné avec A3; B2 fusionné avec B3 ...... J2 fusionné avec J3

A partir de la ligne 4 commence les valeurs du tableau.
Sachant qu'en colonne A sont listé les nom d'élèves que j'utiliserais pour le classeur "d'éditeur de bulletin" pour effectuer des recherches et accéder aux 9 autres colonnes de valeurs numériques. ( B:J)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 nov. 2011 à 11:17
Bon essaye déjà ça et reviens nous dire ce qui ne convient pas :
Le classeur exemple
Le code :
Option Explicit

Sub ImporterNotes()
Dim NomFic
Dim Wrk As Workbook
Dim DrLig As Long

Set Wrk = ActiveWorkbook
'Suppression des données contenues dans le classeur "macro"
With Wrk.Sheets("note")
    DrLig = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A4:J" & DrLig).Clear
End With
'ouverture du classeur "source"
NomFic = Application.GetOpenFilename
'en cas d'annulation évite le plantage
If NomFic = False Then Exit Sub
Application.ScreenUpdating = False
Workbooks.Open NomFic
'copier/coller les données
With Sheets("note")
    DrLig = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A4:J" & DrLig).Copy Wrk.Sheets("note").Range("A4")
End With
'fermeture du classeur "source"
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
0