rh.finances
XLDnaute Occasionnel
Bonjour à tou(te)s,
Plutôt novice en langage VBA, j'ai malgré tout réussi à constituer une formule macro qui me permet de couper-coller (sans doublon et par ordre alphabétique) les infos figurant sur la plage A8:A18 du fichier excel joint, vers la plage A39:A43.
je viens toutefois de remarquer que cette macro générait un message d'erreur "problème incompatibilité de type 13" si je ne complète que la cellule A8.
en revanche, si je complète à partir de A9, je n'ai aucun souci et je ne vois pas d'où vient l'erreur.
Le code la macro figure ci-après.
Par ailleurs, j'aimerais bien automatiser l'exécution de la macro à chaque saisie de données, sans avoir cliquer sur bouton "calculer" figurant en ligne 36. Est-ce possible ?
merci d'avance pour vos contributions et bon après-midi.
Alex
	
	
	
	
	
		
	
		
			
		
		
	
				
			Plutôt novice en langage VBA, j'ai malgré tout réussi à constituer une formule macro qui me permet de couper-coller (sans doublon et par ordre alphabétique) les infos figurant sur la plage A8:A18 du fichier excel joint, vers la plage A39:A43.
je viens toutefois de remarquer que cette macro générait un message d'erreur "problème incompatibilité de type 13" si je ne complète que la cellule A8.
en revanche, si je complète à partir de A9, je n'ai aucun souci et je ne vois pas d'où vient l'erreur.
Le code la macro figure ci-après.
Par ailleurs, j'aimerais bien automatiser l'exécution de la macro à chaque saisie de données, sans avoir cliquer sur bouton "calculer" figurant en ligne 36. Est-ce possible ?
merci d'avance pour vos contributions et bon après-midi.
Alex
		VB:
	
	
	Option Explicit
Dim ScriptDic As Object, shO As Worksheet, shD As Worksheet, derlig As Long, i As Long, a
Public Sub Actualiser()
    Application.ScreenUpdating = False
    Set shO = Feuil1 'tableau détaillé
    Set shD = Feuil1 'tableau détaillé
    Set ScriptDic = CreateObject("Scripting.Dictionary")
    a = shO.Range("ligne1_liste_agents:ligne_finale_liste_agents" & shO.Range("A" & Rows.Count).End(xlUp).Row)
    ' attention, le nom/prénom agents est en colonne A. si la colonne A est déplacée, modifier le "A" majuscule ci-dessus
    For i = LBound(a) To UBound(a)
        ScriptDic(a(i, 1)) = ""
    Next i
        
    shD.Range("synthèse_tableau").ClearContents 'tableau a39:a43
    shD.Range("synthèse_1e_ligne").Resize(ScriptDic.Count, 1) = Application.Transpose(ScriptDic.keys) 'cellule A39
End Sub 
	 
 
		 
 
		 
 
		 
 
		 
 
		