Transfert des donnees à partir d'un Userform

Résolu/Fermé
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017 - Modifié par r4944 le 14/10/2015 à 17:05
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017 - 16 oct. 2015 à 15:17
Bonjour,

j'ai crée un userform avec un bouton parourir , j'aime bien savoir comment faire ou quelle methode dois-je utiliser pour selectionner un ou plusieurs fichiers excel et transférer leurs donnees avec une condition notons que c'est la meme condition qui doit s'appliquer à chaque fois (la condition : transferer seulement les lignes qui ont XX dans la colonne AP ) le transfert se fait vers la feuille ouverte (qui contienne le userform)

pour le moment je fais ca a travers un boutton mais je dois toujours changer le chemin du fichier.

Voici le code que J'utilise:


Option Explicit
Option Base 1
'--------
Sub Importdata23()
Dim Source As Workbook, Dercol As Integer
Dim Nbre As Integer, Tablo, Cptr As Integer, Lig As Integer, Col As Integer

Application.ScreenUpdating = False

Set Source = Application.Workbooks.Open("C:\Users\xx@yy\Desktop\Updatev3.xlsm", , True)
With Sheets("Workload - Charge de travail")
Dercol = .Rows(2).Find(what:="*", searchdirection:=xlPrevious).Column
Nbre = Application.CountIf(.Columns("AP"), "XX")
ReDim Tablo(Nbre, Dercol)
Lig = 1
For Cptr = 1 To Nbre
Lig = .Columns("AP").Find("XX", .Cells(Lig, "AP"), xlValues).Row
For Col = 1 To Dercol
Tablo(Cptr, Col) = .Cells(Lig, Col)
Next Col
Next Cptr
End With
Source.Close False

With ThisWorkbook.Sheets("Sheet1")
.Range("A2").Resize(Cptr, Dercol) = Tablo
.Activate
End With

End Sub






1 réponse

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
14 oct. 2015 à 19:00
Bonjour,

Selection du fichier:

Option Explicit
Option Base 1
'--------
Sub Importdata23()
Dim Source As Workbook, Dercol As Integer
Dim Nbre As Integer, Tablo, Cptr As Integer, Lig As Integer, Col As Integer
Dim CheminFichier

    Application.ScreenUpdating = False
    'selection fichier source
    CheminFichier = Application.GetOpenFilename("Classeur Excel (*.xls*), *.xls*")
    If CheminFichier = False Then   'pas de fichier
        Exit Sub
    Else
       Set Source = Workbooks.Open(Filename:=CheminFichier)
        With Sheets("Workload - Charge de travail")
            Dercol = .Rows(2).Find(what:="*", searchdirection:=xlPrevious).Column
            Nbre = Application.CountIf(.Columns("AP"), "XX")
            ReDim Tablo(Nbre, Dercol)
            Lig = 1
            For Cptr = 1 To Nbre
                Lig = .Columns("AP").Find("XX", .Cells(Lig, "AP"), xlValues).Row
                For Col = 1 To Dercol
                    Tablo(Cptr, Col) = .Cells(Lig, Col)
                Next Col
            Next Cptr
        End With
        Source.Close False
        Set Source = Nothing
    End If
    With ThisWorkbook.Sheets("Sheet1")
        .Range("A2").Resize(Cptr, Dercol) = Tablo
        .Activate
    End With
End Sub
0
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
14 oct. 2015 à 19:39
est ce que ca traite le traitement je l'ai essayé ca m'affiche une erreur
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710 > r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
15 oct. 2015 à 08:58
Bonjour,

Je n'ai que mis le choix de fichier sur votre code, donc si il y erreur, laquelle et quelle ligne ??
0
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
16 oct. 2015 à 15:17
Merci beaucoup ca fonctionne parfaitement
Bonne journee
0