henrikwasabi
XLDnaute Nouveau
Bonjour, j'ai un petit problème sur excel,
Je veux rassembler les mêmes valeurs qui se trouve dans ma "matriceX"
J'aimerais le faire automatiquement sans aucune manip' a faire malheureusement je n'ai rien trouvé pour cela, j'ai juste trouvé une macro qui me permet de le faire, c'est presque automatique. Mon problème c'est quand dans cette macro je dois faire ma sélection manuellement.
Ma question, est ce qu'il est possible dans modifier le code pour choisir directement ma matrice et non que je face la sélection moi même ? (test 1)
Deuxième question, est-il possible de faire tourner la macro une seul fois mais que je puisse sélectionner plusieurs matrice différentes et donc rassembler plusieurs tableaux différents ? (test 2)
Troisième question, est-ce qu'il y a un autre moyen de le faire sans macro automatiquement sans aucune manip ?
Test 1 :
Avant :
Résultat :
macro :
Test 2 :
Avant :
Résultat :
Merci.
Je veux rassembler les mêmes valeurs qui se trouve dans ma "matriceX"
J'aimerais le faire automatiquement sans aucune manip' a faire malheureusement je n'ai rien trouvé pour cela, j'ai juste trouvé une macro qui me permet de le faire, c'est presque automatique. Mon problème c'est quand dans cette macro je dois faire ma sélection manuellement.
Ma question, est ce qu'il est possible dans modifier le code pour choisir directement ma matrice et non que je face la sélection moi même ? (test 1)
Deuxième question, est-il possible de faire tourner la macro une seul fois mais que je puisse sélectionner plusieurs matrice différentes et donc rassembler plusieurs tableaux différents ? (test 2)
Troisième question, est-ce qu'il y a un autre moyen de le faire sans macro automatiquement sans aucune manip ?
Test 1 :
Avant :
A | B |
1 | 5 |
2 | 3 |
1 | 5 |
Résultat :
A | B |
1 | 10 |
2 | 3 |
macro :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Sub MG30Nov12() 'Updateby20150519 Dim Rng As Range Dim InputRng As Range Dim nRng As Range Set InputRng = Application.Selection Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8) Set InputRng = InputRng.Parent.Range(InputRng.Columns(1).Address) With CreateObject("scripting.dictionary") .CompareMode = vbTextCompare For Each Rng In InputRng If Not .Exists(Rng.Value) Then .Add Rng.Value, Rng.Offset(, 1) Else .Item(Rng.Value).Value = .Item(Rng.Value).Value + Rng.Offset(, 1) If nRng Is Nothing Then Set nRng = Rng Else Set nRng = Union(nRng, Rng) End If End If Next If Not nRng Is Nothing Then nRng.EntireRow.Delete End If End With End Sub |
Test 2 :
Avant :
A | B | D | E | |
1 | 5 | OUI | 5 | |
2 | 3 | NON | 10 | |
1 | 5 | NON | 2 |
Résultat :
A | B | D | E | |
1 | 10 | OUI | 7 | |
2 | 3 | NON | 10 |
Merci.