[Résolu] Copier donnée fichier excel depuis Userform

  • Initiateur de la discussion Initiateur de la discussion arthur203
  • 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 !

A

arthur203

Guest
Bonsoir le forum,

Je souhaiterai pouvoir copier des données d'un classeur dont j'ignore le chemin depuis un bouton d'un userform et les coller dans mon classeur (où se trouve mon userform) j'ai testé ça mais ça ne fonctionne pas :

Code:
Private Sub CommandButton65_Click()
Dim wbcible, wbsource As Workbook
    Set wbcible = ThisWorkbook
    set wbsource =Application.GetOpenFilename

    With wbsource
        For lig = 3 To 500
            If ActiveSheet.Cells(lig, 18) = 2 Then
                ActiveSheet.Range("A3:A" & ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AA3")
                ActiveSheet.Range("B3:B" & ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("A3")
                ActiveSheet.Range("F3:F" & ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AB3")
                ActiveSheet.Range("K3:K" & ActiveSheet.Range("K" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("L3")
                ActiveSheet.Range("M3:M" & ActiveSheet.Range("M" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AD3")
                ActiveSheet.Range("N3:N" & ActiveSheet.Range("N" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AG3")
                ActiveSheet.Range("O3:O" & ActiveSheet.Range("O" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AL3")
                ActiveSheet.Range("Q3:Q" & ActiveSheet.Range("Q" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AF3")
                ActiveSheet.Range("S3:S" & ActiveSheet.Range("S" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("AE3")
                ActiveSheet.Range("T3:T" & ActiveSheet.Range("T" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("feuil1").Range("Y3")
            End If
        Next
    End With
'wbsource.Close


End Sub

Autre question rien à voir: est-il possible de nommer un label d'un userform en fonction d'une variable i ? Concrètement un truc du genre (mais qui marcherai lol):

For i = 1 to 10

Labeli.caption = cells(i,1).value

next i

Merci de votre aide !
 
Dernière modification par un modérateur:
Re : Copier donnée fichier excel depuis Userform

Bonjour,

ca ne fonctionne pas ?? cela veut dire quoi ? message d'erreur ou pas le résultat attendu ? et sur quele ligne l'erreur ? déjà tu devrais être arreté ici :
Code:
set wbsource =Application.GetOpenFilename

la méthode "GetOpenFilename" ne renvoie pas un objet, mais une donnée de type "string" (chemin et nom du fichier selectionné)... modifie comme suit :
Code:
Dim wbsource As String
wbsource = Application.GetOpenFilename

A noter également, un bloc "with" :
Code:
With wbsource
que tu n'utilises pas....

bonne journée
@+
 
Re : Copier donnée fichier excel depuis Userform

Salut Pierrot,

En effet j'avais le message d'erreur qui apparaissait au niveau de la ligne set wbsource "erreur d'execution ... objet requis"

En essayant ta solution j'ai toujours un message d'erreur sur la même ligne: "erreur de compilation ... objet requis"

Merci de votre aide!
 
Re : Copier donnée fichier excel depuis Userform

oui oui bien sûr voici mon nouveau code:

Dim wbcible As Workbook
Dim wbsource As String

Set wbcible = ThisWorkbook
Set wbsource = Application.GetOpenFilename

wbsource.Activate

For lig = 3 To 500
If ActiveSheet.Cells(lig, 18) = 2 Then
ActiveSheet.Range("A3:A" & ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("Process & Controls").Range("AA3")
ActiveSheet.Range("B3:B" & ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("Process & Controls").Range("A3")
ActiveSheet.Range("F3:F" & ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("Process & Controls").Range("AB3")
ActiveSheet.Range("K3:K" & ActiveSheet.Range("K" & Rows.Count).End(xlUp).Row).Copy wbcible.Sheets("Process & Controls").Range("L3")
End If
Next

wbsource.Close
 
Re : Copier donnée fichier excel depuis Userform

Re,

enlève le "set" :
Code:
Set wbsource = Application.GetOpenFilename

pas présent dans le code que je t'ai donné... et attention la méthode "GetOpenFilename" n'ouvrira pas le fichier....
 
Re : Copier donnée fichier excel depuis Userform

En effet le set n'y était pas au temps pour moi .

Par contre vu que je ne peux pas sélectionner mon fichier je fais comment pour importer les données ?

Je ne comprend pas cette solution merci de m'éclairer.

Arthur
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
656
Réponses
9
Affichages
830
Réponses
5
Affichages
839
Réponses
4
Affichages
730
Réponses
15
Affichages
932
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
880
Réponses
7
Affichages
799
Retour