suite a la mise en place d'une macro pour recuperer des donnees dans
un classeur ferm=E9, tout fonctionne pour le texte mais pour les dates
recuperees ca bug, cela ne m'ecrit pas la date telle qu'elle est dans
mon classeur ferm=E9
voici le fichier joint
http://www.cijoint.fr/cjlink.php?file=3Dcj200910/cijZHXwAjK.zip
et le code
voici le code que j'ai pour recuperer mes donnees
Sub LoopThruFiles()
Application.EnableEvents =3D False
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName =3D Dir(ThisWorkbook.Path & "\LISTE\*.xls")
Do While Len(FName) > 0
FileCounter =3D FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) =3D FName
FName =3D Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating =3D False
For LoopCounter =3D 1 To FileCounter
x =3D LoopCounter
'calcul de la plage de destination
place =3D Range(Cells((((x - 1) * 99) + 2), 1), Cells(((x *
99)), 7)).Address
'METTRE LA LETTRE DU DISQUE DUR CONCERNE C,D, E,ETC...
GetValues "E:", FilesArray(LoopCounter), "Blad1",
"a1:G100", place
Next
Application.ScreenUpdating =3D True
End If
Columns("A:G").Select
Selection.Sort Key1:=3DRange("B2"), Order1:=3DxlAscending,
Header:=3DxlYes, _
OrderCustom:=3D1, MatchCase:=3DFalse,
Orientation:=3DxlTopToBottom, _
DataOption1:=3DxlSortNormal
Range("A1").Select
Application.EnableEvents =3D True
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray =3D "=3D'" & ThisWorkbook.Path & "\LISTE" & "\[" &
FName & "]" & sName & "'!" & cellRange
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Magic,
tu pourrait vérifier si la variable est une date avec par exemple If IsDate(variable) Then "mettre au format date" et mettre la cellule de destination au format voulu.
isabelle
magic-dd a écrit :
bonjour
suite a la mise en place d'une macro pour recuperer des donnees dans un classeur fermé, tout fonctionne pour le texte mais pour les dates recuperees ca bug, cela ne m'ecrit pas la date telle qu'elle est dans mon classeur fermé
voici le fichier joint
http://www.cijoint.fr/cjlink.php?file=cj200910/cijZHXwAjK.zip et le code voici le code que j'ai pour recuperer mes donnees
Sub LoopThruFiles() Application.EnableEvents = False
Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir(ThisWorkbook.Path & "LISTE*.xls") Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination place = Range(Cells((((x - 1) * 99) + 2), 1), Cells(((x * 99)), 7)).Address
'METTRE LA LETTRE DU DISQUE DUR CONCERNE C,D, E,ETC...
GetValues "E:", FilesArray(LoopCounter), "Blad1", "a1:G100", place Next Application.ScreenUpdating = True End If
Columns("A:G").Select Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A1").Select Application.EnableEvents = True End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle With ActiveSheet.Range(place) .FormulaArray = "='" & ThisWorkbook.Path & "LISTE" & "[" & FName & "]" & sName & "'!" & cellRange
tu pourrait vérifier si la variable est une date avec par exemple
If IsDate(variable) Then "mettre au format date"
et mettre la cellule de destination au format voulu.
isabelle
magic-dd a écrit :
bonjour
suite a la mise en place d'une macro pour recuperer des donnees dans
un classeur fermé, tout fonctionne pour le texte mais pour les dates
recuperees ca bug, cela ne m'ecrit pas la date telle qu'elle est dans
mon classeur fermé
voici le fichier joint
http://www.cijoint.fr/cjlink.php?file=cj200910/cijZHXwAjK.zip
et le code
voici le code que j'ai pour recuperer mes donnees
Sub LoopThruFiles()
Application.EnableEvents = False
Dim place As String
Dim FilesArray() As String, FileCounter As Integer
Dim FName As String, LoopCounter As Integer
FName = Dir(ThisWorkbook.Path & "LISTE*.xls")
Do While Len(FName) > 0
FileCounter = FileCounter + 1
ReDim Preserve FilesArray(1 To FileCounter)
FilesArray(FileCounter) = FName
FName = Dir()
Loop
If FileCounter > 0 Then
Application.ScreenUpdating = False
For LoopCounter = 1 To FileCounter
x = LoopCounter
'calcul de la plage de destination
place = Range(Cells((((x - 1) * 99) + 2), 1), Cells(((x *
99)), 7)).Address
'METTRE LA LETTRE DU DISQUE DUR CONCERNE C,D, E,ETC...
GetValues "E:", FilesArray(LoopCounter), "Blad1",
"a1:G100", place
Next
Application.ScreenUpdating = True
End If
Columns("A:G").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending,
Header:=xlYes, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
Application.EnableEvents = True
End Sub
Sub GetValues(fPath As String, FName As String, sName, _
cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de
'la feuille active sous forme d'une formule matricielle
With ActiveSheet.Range(place)
.FormulaArray = "='" & ThisWorkbook.Path & "LISTE" & "[" &
FName & "]" & sName & "'!" & cellRange
tu pourrait vérifier si la variable est une date avec par exemple If IsDate(variable) Then "mettre au format date" et mettre la cellule de destination au format voulu.
isabelle
magic-dd a écrit :
bonjour
suite a la mise en place d'une macro pour recuperer des donnees dans un classeur fermé, tout fonctionne pour le texte mais pour les dates recuperees ca bug, cela ne m'ecrit pas la date telle qu'elle est dans mon classeur fermé
voici le fichier joint
http://www.cijoint.fr/cjlink.php?file=cj200910/cijZHXwAjK.zip et le code voici le code que j'ai pour recuperer mes donnees
Sub LoopThruFiles() Application.EnableEvents = False
Dim place As String Dim FilesArray() As String, FileCounter As Integer Dim FName As String, LoopCounter As Integer
FName = Dir(ThisWorkbook.Path & "LISTE*.xls") Do While Len(FName) > 0 FileCounter = FileCounter + 1 ReDim Preserve FilesArray(1 To FileCounter) FilesArray(FileCounter) = FName FName = Dir() Loop If FileCounter > 0 Then Application.ScreenUpdating = False For LoopCounter = 1 To FileCounter
x = LoopCounter 'calcul de la plage de destination place = Range(Cells((((x - 1) * 99) + 2), 1), Cells(((x * 99)), 7)).Address
'METTRE LA LETTRE DU DISQUE DUR CONCERNE C,D, E,ETC...
GetValues "E:", FilesArray(LoopCounter), "Blad1", "a1:G100", place Next Application.ScreenUpdating = True End If
Columns("A:G").Select Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A1").Select Application.EnableEvents = True End Sub
Sub GetValues(fPath As String, FName As String, sName, _ cellRange As String, place As String)
'recopie une plage des valeurs externes dans une plage de 'la feuille active sous forme d'une formule matricielle With ActiveSheet.Range(place) .FormulaArray = "='" & ThisWorkbook.Path & "LISTE" & "[" & FName & "]" & sName & "'!" & cellRange
donc pour ne pas prendre les cellules ne contenant rien il me faudrait avoir la variable "fin" qui correspondrait à un countA(A:A) du classeur pour lequel il copie les donnees
le probleme des dates venait que je demandait de remplacer les 0 dans mes colonnes A:G ce qui me virait des O dans les dates de naissances
donc le plus dur est de trouver comment faire dire a cette sub de prendre la variable fin
merci de votre aide
je commence à voir ou ca merdouille
en fait etant donne que dans cette ligne de commande
donc pour ne pas prendre les cellules ne contenant rien il me faudrait
avoir la variable "fin" qui correspondrait à un countA(A:A) du
classeur pour lequel il copie les donnees
le probleme des dates venait que je demandait de remplacer les 0 dans
mes colonnes A:G ce qui me virait des O dans les dates de naissances
donc le plus dur est de trouver comment faire dire a cette sub de
prendre la variable fin
donc pour ne pas prendre les cellules ne contenant rien il me faudrait avoir la variable "fin" qui correspondrait à un countA(A:A) du classeur pour lequel il copie les donnees
le probleme des dates venait que je demandait de remplacer les 0 dans mes colonnes A:G ce qui me virait des O dans les dates de naissances
donc le plus dur est de trouver comment faire dire a cette sub de prendre la variable fin