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