Transfert des donnees à partir d'un Userform
Résolu
r4944
Messages postés
122
Date d'inscription
Statut
Membre
Dernière intervention
-
r4944 Messages postés 122 Date d'inscription Statut Membre Dernière intervention -
r4944 Messages postés 122 Date d'inscription Statut Membre Dernière intervention -
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:
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
A voir également:
- Transfert des donnees à partir d'un Userform
- Fuite données maif - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Trier des données excel - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Transfert d'appel ooredoo ✓ - Forum Mobile
1 réponse
Bonjour,
Selection du fichier:
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
Je n'ai que mis le choix de fichier sur votre code, donc si il y erreur, laquelle et quelle ligne ??
Bonne journee