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