Joe_cooker
XLDnaute Nouveau
Bonjour à tous et a toutes
voici une autre je demande votre aide. d'avance merci a vous car grace a vous j'ai appris bcp.
j'essaye de me débrouiller tt seul en consultant ce forum mais il me reste des améliorations à apporter.
bref, je fais une copie coller d'un document text sous bloc note vers une feuille excel.
pour extraire les données que j'ai besoin j'utilise des formule avec vba et par la suite de procede à une extraction ds une autre feuille à l'aide du code application-match. voici les étapes:
coller ds colonne a feuille1
ds colonne B , C et D: j'utilise les Formules suivantes à l'aide du code ci dessous:
Sub Formul_SAL()
'Formul1 Macro
'
With Worksheets("SAL").Range("B2:B" & Worksheets("SAL").Range("A65000").End(xlUp).Row)
.Formula = "=TRIM(RC[-1])"
End With
'
' Formul4 Macro
'
With Worksheets("SAL").Range("C2:C" & Worksheets("SAL").Range("A65000").End(xlUp).Row)
.Formula = _
"=TRIM(SUBSTITUTE(REPLACE(RC[-2],25,200,""""),""."",""""))"
End With
' Formul5 Macro
'
With Worksheets("SAL").Range("D2 " & Worksheets("SAL").Range("A65000").End(xlUp).Row)
.Formula = _
"=TRIM(SUBSTITUTE(REPLACE(RC[-3],1,25,""""),""*"",""""))"
End With
End Sub
jusqu'à la il n y a pas de probleme.
pour exploiter les données j'ai besoin de répartir les données de la colonne D ds les colonnes qui suit E , F ,G .... ces colonne varient selon le nombre d'accurences que j'ai obtenu ds la colonne D (ces données peuvent etre chiffre ou des lettre et sont séparés par un espace)
Pour réaliser cela. j'ai trouvé un code qui me convient parfaitement mais l'inconvinient est qui est tres long ,ca prend bcp de temps et je peux pas lancer à partir d'une autre feuille sans passer par la feuille1 ( ou se trouve les données à traiter par la suite. voici le code que j' utilse :
ce code me convient et mon probleme est sa lenteur et qe je ne p pas l'utiliser sans passer par la feuille ou se trouve les données:
Sub Repart_SCE()
'
' nom_prénom Macro
' Macro enregistrée le 01/09/2003 par Parents
'
Dim i, j, k, l As Integer
Dim n, nm As String
Sheets("SCE").Activate
l = Range("D65000").End(xlUp).Row
For i = 1 To l
k = 5
nm = Cells(i, 4): n = ""
For j = 1 To Len(Cells(i, 4))
If Mid(nm, j, 1) = " " Then Cells(i, k) = n: k = k + 1: n = "": GoTo label1
n = n + Mid(nm, j, 1)
label1:
Next j
Cells(i, k) = n
Next i
Sheets("RRE (2)").Activate
'
End Sub
si quelqu'un peut m'aider pour optimiser mes codes je serait reconnaissant.
NB: mon fichier est tres lourd et j'arrive pas à avoir 50k
il y a plus que 15 000 lignes a traiter et `plusieurs feuille de calcules
désolé de ne pas pouvoir envoyer le fichier . j'essayé avec winrar tout en laissant juste le minmum donnes ds le fichier mais il est lourd
j'espere etre explicite
Merci d'avance
voici une autre je demande votre aide. d'avance merci a vous car grace a vous j'ai appris bcp.
j'essaye de me débrouiller tt seul en consultant ce forum mais il me reste des améliorations à apporter.
bref, je fais une copie coller d'un document text sous bloc note vers une feuille excel.
pour extraire les données que j'ai besoin j'utilise des formule avec vba et par la suite de procede à une extraction ds une autre feuille à l'aide du code application-match. voici les étapes:
coller ds colonne a feuille1
ds colonne B , C et D: j'utilise les Formules suivantes à l'aide du code ci dessous:
Sub Formul_SAL()
'Formul1 Macro
'
With Worksheets("SAL").Range("B2:B" & Worksheets("SAL").Range("A65000").End(xlUp).Row)
.Formula = "=TRIM(RC[-1])"
End With
'
' Formul4 Macro
'
With Worksheets("SAL").Range("C2:C" & Worksheets("SAL").Range("A65000").End(xlUp).Row)
.Formula = _
"=TRIM(SUBSTITUTE(REPLACE(RC[-2],25,200,""""),""."",""""))"
End With
' Formul5 Macro
'
With Worksheets("SAL").Range("D2
.Formula = _
"=TRIM(SUBSTITUTE(REPLACE(RC[-3],1,25,""""),""*"",""""))"
End With
End Sub
jusqu'à la il n y a pas de probleme.
pour exploiter les données j'ai besoin de répartir les données de la colonne D ds les colonnes qui suit E , F ,G .... ces colonne varient selon le nombre d'accurences que j'ai obtenu ds la colonne D (ces données peuvent etre chiffre ou des lettre et sont séparés par un espace)
Pour réaliser cela. j'ai trouvé un code qui me convient parfaitement mais l'inconvinient est qui est tres long ,ca prend bcp de temps et je peux pas lancer à partir d'une autre feuille sans passer par la feuille1 ( ou se trouve les données à traiter par la suite. voici le code que j' utilse :
ce code me convient et mon probleme est sa lenteur et qe je ne p pas l'utiliser sans passer par la feuille ou se trouve les données:
Sub Repart_SCE()
'
' nom_prénom Macro
' Macro enregistrée le 01/09/2003 par Parents
'
Dim i, j, k, l As Integer
Dim n, nm As String
Sheets("SCE").Activate
l = Range("D65000").End(xlUp).Row
For i = 1 To l
k = 5
nm = Cells(i, 4): n = ""
For j = 1 To Len(Cells(i, 4))
If Mid(nm, j, 1) = " " Then Cells(i, k) = n: k = k + 1: n = "": GoTo label1
n = n + Mid(nm, j, 1)
label1:
Next j
Cells(i, k) = n
Next i
Sheets("RRE (2)").Activate
'
End Sub
si quelqu'un peut m'aider pour optimiser mes codes je serait reconnaissant.
NB: mon fichier est tres lourd et j'arrive pas à avoir 50k
il y a plus que 15 000 lignes a traiter et `plusieurs feuille de calcules
désolé de ne pas pouvoir envoyer le fichier . j'essayé avec winrar tout en laissant juste le minmum donnes ds le fichier mais il est lourd
j'espere etre explicite
Merci d'avance