Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion mephis
  • Date de début Date de début

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 !

mephis

XLDnaute Occasionnel
Bonjour à tous, merci d'avance pour toute l'aide que vous pourrez m'apporter.


Mon problème est que je doit importer des données excel d'un classeur fermé dans le classeur où je travail.

J'utilise donc :

Dim Chem As String, Fichier As String
Chem = "C:"
Fichier = "source.xls"
ThisWorkbook.Names.Add "pièce", _
RefersTo:="='" & Chemin & "[" & Fichier & "]textbox1'!$A$1:$H$550"
[A1:Z3000].ClearContents
[A1:H550] = "=pièce"
[A1:H550].Copy
Range("A1").PasteSpecial xlPasteValues

Le problème est qu'il m'importe aussi des données de d'autre fichier que je n'ai pas demandé:

Exemples:

classeur1 : 1,2,3,4,5
classeur2:a,b,c,d,e

Quand je vais lui demander d'importer le classeur 1 il va importer: 1,2,3,4,5,a,b

je vous met les fichier en lien pour que vous constatez par vous même.

Cordialement
 

Pièces jointes

Re : import

Bonjour Menphis 🙂,
personne ne peut m'aider?
Entre le fait que :
Ta macro fait référence à un fichier que tu n'as pas fourni : nomenclature-excel.xls...
Ton fichier est bourré de macro et d'USF et il faut déjà trouver la macro concernée...
Qu'il ne t'es pas venu à l'idée de fournir le mode d'emploi...
Que tu dis qu'elle fonctionne à moitié, or il y a à priori une grosse erreur, donc je doute :
Code:
RefersTo:="='" & Chemin & "[" & Fichier & "]textbox1'!$A$1:$H$550"
ce serait plutôt
Code:
RefersTo:="='" & Chemin & "[" & Fichier & "]" & textbox1 & "'!$A$1:$H$550"
sans compter qu'utiliser une variable d'USF dans une macro de module, je doute aussi...
Bref, mets nous uniquement les 2 fichiers concernés, avec juste ce qu'il faut pour reproduire l'erreur, si erreur il y a 🙄...
Bon WE 😎
 
Dernière édition:
Re : import

Bonjour JNP , dans mon premier message j'ai exposé mon problème avec le code qui dysfonctionnait dans mon premier message.


J'ai essayé ce que tu m'as dis mais il n'y as rien qui change.
J'ai aussi essayé de mettre le code directement dans le userform mais ça ne marche pas non plus.

J'ai donc refais un fichier avec que le bout de code concerné et avec les fichier à importer.
 

Pièces jointes

Re : import

Re 🙂,
Qu'essayes-tu de faire avec
Code:
"='" & Chemin & "[" & Fichier & "]" & TextBox1 & "'!$A$1:$H$550
Dans ton dernier code, ça vaut
Code:
='C:[.xls]'0'!$A$1:$H$550
😕...
Dans la logique (enfin, ce que j'avais compris en voyant ton code) tu avais le chemin, le fichier et le nom de la feuille 🙄...
Je doute que ta feuille s'appelle TextBox1, d'où ma proposition pour que ce soit la valeur de TextBox1 qui soit utilisée, mais j'ai l'impression que tu utilises du code sans le comprendre 😱...
A te lire 😎
 
Re : import

😱

Je comprends oui et non 🙂

J'avais poster un poste sur plusieurs forum dont celui et à chaque fois personne n'a jamais su me répondre, donc après trois jours de recherche sur internet j'ai trouvé ceci, au début je croyais que ça fonctionnait bien mais non.
 
Re : import

Re 🙂,
Comme je disais, tu as trouvé un code que tu ne t'es pas approprié... 🙄
Le mieux serait de savoir ce que tu veux faire exactement 😛...
Bonne soirée 😎
 
Re : import

J'ai réussi à faire ceci mais bon c'est pas top top

Private Sub CommandButton1_Click()
Application.DisplayAlerts = False

Dim n As Integer
Dim i As Variant
i = TextBox1
ActiveSheet.Name = i
classeur = Application.GetOpenFilename("Classeurs Excel,*.xls")
If classeur = False Then Exit Sub
Workbooks.Open Filename:=classeur
Range("A1:H550").Select
Selection.Copy
ActiveWorkbook.Close
Windows("classeur1").Activate
Range("A1").Select
ActiveSheet.Paste

Me.Hide
Exit Sub
Application.DisplayAlerts = True
End Sub


(DSL pour le double poste)
 
Dernière édition:
Re : import

Re 🙂,
A tester :
Code:
Private Sub CommandButton1_Click()Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim i As String, classeur As String
i = TextBox1
ActiveSheet.Name = i
classeur = Application.GetOpenFilename("Classeurs Excel,*.xls")
If classeur = False Then Exit Sub
Workbooks.Open Filename:=classeur
ThisWorkbook.Sheets(i).Range("A1:H550").Value = ActiveWorkbook.ActiveSheet.Range("A1:H550").Value
ActiveWorkbook.Close
Unload Me
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Bonne suite 😎
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
1 K
A
  • Résolu(e)
Réponses
4
Affichages
892
A
Réponses
14
Affichages
1 K
Arnaud59000
A
R
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
M
Réponses
2
Affichages
982
MOmichel
M
Réponses
1
Affichages
1 K
Réponses
3
Affichages
1 K
N
Réponses
10
Affichages
5 K
Nicocotte125
N
R
Réponses
0
Affichages
3 K
R
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…