Concatener et grouper
Salut à tous
je reviens vers vous pour un problème de liste de données.
J'ai une liste de serveur que je dois grouper par nom de serveur, de contacts et d'applications.
Sur un serveur sont installés plusieurs applications donc le serveur apparait plusieurs fois sur la liste:
Server App Name
CWU1P01 WEBSHOP CHRIST
CWU1P01 WEBSHOP GIFTCARD
CWU1P01 WEBSHOP BAU UND HOBBY
L'idée serait d'avoir ce résultat:
Server App Name
CWU1P01 WEBSHOP CHRIST, WEBSHOP GIFTCARD, WEBSHOP BAU UND HOBBY
Actuellement je me sers de cette formule:
=SI(A3=A2;CONCATENER(H2;", ";G3);G3)
et ça donne ça:
Server Appl Name
CWU1P01 WEBSHOP CHRIST
CWU1P01 WEBSHOP CHRIST, WEBSHOP GIFTCARD
CWU1P01 WEBSHOP CHRIST, WEBSHOP GIFTCARD, WEBSHOP BAU UND HOBBY
Sur la troisième ligne j'ai le résultat attendu.
Maintenant je voudrais qu'il ni ai qu'une seule ligne par serveur.
Est-il possible de les effacer?
Est-il possible de grouper les cellules de la colonne 'Appl Name' dans la même cellule si le nom de serveur est le même?
Merci d'avance et bonne journée
Fab
Bonjour,
Voici 2 fichiers : l'un avec une solution comme l'a tienne mais à partir de VBA (Voir Alt+F11 dans module) ; le second est plus aisé car il mélange le VBA et les formules classiques grâce à la création d'une fonction Recherche Multiples très pratique et facilement transposable car tu peux changer le séparateur et mettre une virgule au lieu d'un "/" (et ce toujours dans le VBA).
Attention a bien valider certaine formule en matriciel CTRL+SHIFT+Entrée pour qu'elle fonctionne (élimination des doublons).
A+ sur le forum
BG
Salut CVC
l'exemple fichier recherche serait parfait mais j'ai du mal à modifier les plages de recherche dans la colonne A(Site).
Actuellement elle s'arrête à la ligne A10.
Je dois être vraiment à côté de la plaque, car impossible de modifier la formule correctement.
Merci beaucoup en tout cas.
Bye
Fab
Et voici ton fichier associée a la Recherche Multiple après extraction des serveurs hors doublons. Le séparateur a été modifié pour correspondre à tes attentes. Valide le sujet si cela te convient.
Bonne soirée.
Re CVC
merci pour ton aide.
je t'ai fait une copie d'écran, pour essayer d'expliquer mon problème.
La formule ne prend en compte que les cases A5 à A10.
La formule de la colonne G je l'ai tiré plus bas sans problème.
Par contre la formule de la colonne F(en violet) est plus complexe et ne se laisse pas tirer(dsl, ça sonne bizarre je sais...
Désolé si c'est un truc idiot ou une question con mais là je bloque...
Merci et bonne soirée
Fab
édit: pt'être que je me trompe, mais c'est le même fichier que le premier.
édit2: je viens de voir la feuille 2, dsl... mais le problème reste le même. je n'arrive pas à étendre la formule au delà de la ligne 21.
RE
comme dit plus haut, je n'arrive pas à étendre la formule au delà de la ligne 21.
Sinon c'est exactement ce qu'il me faut.
La liste que je dois traiter contient déjà plus de 5000 serveurs et elle augmente d'années en années.
De plus, si je peux me permettre encore une demande, il me faudrait aussi les informations contenu dans les autres colonnes(nom de contact, environment etc..). Pareil, sans doublons.
Ce serait vraiment me tirer une épine du pieds.
Merci d'avance et bonne soirée
Fab
Bonsoir à tous,
J'ai supprimé la colonne H de la feuille source
Option Explicit
Sub test()
Dim a, b(), i As Long, j As Long, n As Long, dico As Object
Set dico = CreateObject("Scripting.Dictionary")
dico.CompareMode = 1
a = Sheets("Tabelle1").Range("a1").CurrentRegion.Value
ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2))
For i = 2 To UBound(a, 1)
If Not dico.exists(a(i, 1)) Then
n = n + 1
For j = 1 To UBound(a, 2) - 1
b(n, j) = a(i, j)
Next
dico(a(i, 1)) = n
End If
b(dico(a(i, 1)), 7) = b(dico(a(i, 1)), 7) & IIf(b(dico(a(i, 1)), 7) <> "", vbLf, "") & a(i, 7)
Next
Application.ScreenUpdating = False
On Error Resume Next
Application.DisplayAlerts = False
Sheets("restitution").Delete
Sheets.Add().Name = "restitution"
On Error GoTo 0
With Sheets("restitution").Range("a1")
.Resize(, UBound(b, 2)).Value = a
With .Offset(1).Resize(n, UBound(b, 2))
.Value = b
End With
With .CurrentRegion
.Font.Name = "calibri"
.Font.Size = 10
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
.VerticalAlignment = xlCenter
.Columns.AutoFit
With .Rows(1)
.BorderAround Weight:=xlThin
.Interior.ColorIndex = 44
.HorizontalAlignment = xlCenter
End With
End With
End With
Application.ScreenUpdating = True
End Subklin89
Salut à tous
dsl Klin89 je n'arrive pas à le faire fonctionner.
Il bloque à la 4eme ligne--> Set dico...
Merci
Fab
Bonjour Fabrice68220, CVC, Klin89,
Voir si cela convient, faire un appui sur le bouton "Transfert" et voir dans la feuille "Résultats".
J'ai utilisé la fonction de CVC pour la colonne "G".
Cordialement.
Bonjour,
En PJ plusieurs choses : un imprim écran des références bibliothèques nécessaires pour faire fonctionner le Scripting Dictionnary. On y accède via Alt+F11 (écran développeur) menu Outils puis Références. Peut-être est-ce pour cela le blocage en ligne 4
Un nouveau fichier Recherches Multiples avec des formules qui récupèrent le reste des infos (formule de type Index Equiv). Décompose les formules si tu ne les comprend pas car c'est tjrs le meilleur moyen d'apprendre (par exemple Equiv donne un n° de ligne).
Du reste, je ne comprend pas pourquoi tu n'arrives pas à tirer la formule matricielle (dans mon fichier, je l'ai étiré sans problème !). Il faut bien faire attention au positionnement des "$" notamment après la fonction NB.SI dont la plage augmente au fur et à mesure de l'incrémentation et bien sûr valider cette formule par CTRL+MAJ+ENTREE (formule matricielle).
Une formule matricielle de ce type sur 5000 valeurs va un peu faire ramer ton poste, je pense. Il faudra y aller par paquet de 1000 d'abord et patienter quelques instants après avoir étiré la formule.
En espérant avoir résolu ton souci.
Hello tous le monde
excellent, problème résolue.
J'utilise avec succès le fichier de CVC.
Le problème de tirage de formule est aussi réglé. j'ai du réécrire les deux première ligne à la main et ensuite j'ai pu les tirer jusqu'à la ligne voulu. Déjà testé, et effectivement l'ordi portable du taf a un peut ramé, le PC perso par contre a avalé les quelques 2000 lignes en moins de 30 secondes.
Les autres possibilité doivent encore être testé mais je pense rester sur le fichier de CVC.
En tout cas merci à tous, c'est sympat de reçevoir de l'aide.
Bye et bonne soirée/nuit
Fab