fabi1joret
XLDnaute Junior
Bonjour le forum,
Suite au démarrage d'un nouveau projet pour mon travail, j'ai décidé d'apprendre à utiliser les dictionnaires dans ma méthode de programmation (Connaissances = zéro dans cette méthode). L’intérêt étant d'accélérer les traitements puisque après estimation je devrais avoir environ 40000 lignes.
Mais me voilà bloqué après quelques lignes de commande.
Dans le programme qui suit, j'essaye de récupérer la date d'une cellule
en tant qu'item pour ensuite la recopier dans une base de données
.
Le problème est que la date est écrite dans la base en format standard et pas moyen de la convertir.
Le programme :
Merci pour vos réponses
Suite au démarrage d'un nouveau projet pour mon travail, j'ai décidé d'apprendre à utiliser les dictionnaires dans ma méthode de programmation (Connaissances = zéro dans cette méthode). L’intérêt étant d'accélérer les traitements puisque après estimation je devrais avoir environ 40000 lignes.
Mais me voilà bloqué après quelques lignes de commande.
Dans le programme qui suit, j'essaye de récupérer la date d'une cellule
Code:
wsp.[R1].Value
Code:
wsb.Range("A" & lb).Resize(jour.Count) = Application.Transpose(jour.Items)
Le problème est que la date est écrite dans la base en format standard et pas moyen de la convertir.
Le programme :
Code:
Set wsp = Worksheets("Pointages")
Set wsb = Worksheets("BDD_Affectation")
lp = wsp.Range("D" & Rows.Count).End(xlUp).Row
lb = wsb.Range("A" & Rows.Count).End(xlUp).Row + 1
Set TpsAM = CreateObject("Scripting.Dictionary")
Set BatAM = CreateObject("Scripting.Dictionary")
Set TpsAP = CreateObject("Scripting.Dictionary")
Set BatAP = CreateObject("Scripting.Dictionary")
Set PrevAM = CreateObject("Scripting.Dictionary")
Set PrevAP = CreateObject("Scripting.Dictionary")
Set jour = CreateObject("Scripting.Dictionary")
For Each c In wsp.Range("D4:D" & wsp.[d65000].End(xlUp).Row)
If c.Offset(, 2).Value = "" Then
TpsAM.Add c.Value, c.Offset(, 7).Value
BatAM.Add c.Value, "AC"
TpsAP.Add c.Value, c.Offset(, 8).Value
BatAP.Add c.Value, "AC"
Else
TpsAM.Add c.Value, c.Offset(, 1).Value
BatAM.Add c.Value, c.Offset(, 2).Value
TpsAP.Add c.Value, c.Offset(, 4).Value
BatAP.Add c.Value, c.Offset(, 5).Value
End If
PrevAM.Add c.Value, c.Offset(, 11).Value
PrevAP.Add c.Value, c.Offset(, 12).Value
jour.Add c.Value, wsp.[R1].Value
Next c
wsb.Range("B" & lb).Resize(TpsAM.Count) = Application.Transpose(TpsAM.keys)
wsb.Range("C" & lb).Resize(TpsAM.Count) = Application.Transpose(TpsAM.Items)
wsb.Range("D" & lb).Resize(BatAM.Count) = Application.Transpose(BatAM.Items)
wsb.Range("E" & lb).Resize(TpsAP.Count) = Application.Transpose(TpsAP.Items)
wsb.Range("F" & lb).Resize(BatAP.Count) = Application.Transpose(BatAP.Items)
wsb.Range("G" & lb).Resize(PrevAM.Count) = Application.Transpose(PrevAM.Items)
wsb.Range("H" & lb).Resize(PrevAP.Count) = Application.Transpose(PrevAP.Items)
wsb.Range("A" & lb).Resize(jour.Count) = Application.Transpose(jour.Items)
Merci pour vos réponses