Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

arthur203

XLDnaute Junior
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 édition:

Pierrot93

XLDnaute Barbatruc
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
@+
 

arthur203

XLDnaute Junior
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!
 

arthur203

XLDnaute Junior
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
 

Pierrot93

XLDnaute Barbatruc
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....
 

arthur203

XLDnaute Junior
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…