Tableaux croisés dynamiques

Bonjour à tous,

Je dispose de deux listings au format Excel que nous nommerons Listing A et Listing B :

  • Le listing A reprend l'ensemble des sociétés qui sont clientes au sein de notre groupe;
  • Le listing B reprend un série de sociétés répondant à des critères d'activités bien spécifiques, et ce, dans une région donnée.

Il me faut maintenant répertorier les sociétés du listing B qui ne sont pas reprises pas reprise au listing A; à savoir non cliente de notre groupe.

Quel serait la meilleure façon de procéder ?

Attendu que l'encodage du nom de l'entreprise peut différer, je pensais recourir au code d'identification de l'entreprise (n° unique par entrprise en Belgique) et dont le format se défini comme suit : 0467 608 690.

D'avance, je vous remercie pour votre aide.

Bien à vous

Bonjour et bienvenue

Merci de joindre ton fichier (sans données confidentielles - tu remplaces les noms de tes clients par NOM1 NOM2 etc...)

Comment Joindre Un Fichier

Amicalement

Nad

Bonjour,

En voulant joindre les deux fichiers en question, je remarque que mon programme exporte les données au format .csv et non .exl.

Comment puis-je faire convertir mes données ?

Au plaisir de vous lire,

Vinc

Bonjour Headen,

Voici une première solution (peut-être pas la mailleure, mais....)

Cordialement,

Fabienne

-- Jeu Mar 10, 2011 1:00 pm --

Re!

Je n'avais pas vu que tu étais en V 2003

Fabienne

Bonjour,

Comme demandé par Nad, voici les deux listing en question.

Je vais analyse cette première solution proposée et vous reviens au plus vite.

Bien à vous

-- 10 Mar 2011, 12:36 --

Fabienne,

Sauf erreur de ma part, cette solution nécessite de répliquer la formule par ligne.

N'est pas possible de réaliser une seule opération et envoyer le résultat dans un troisième tableau ?

Au plaisir de te lire,

Vinc

16listing-a.zip (26.50 Ko)
15listing-b.zip (15.03 Ko)
Headen a écrit :

Sauf erreur de ma part, cette solution nécessite de répliquer la formule par ligne.

N'est pas possible de réaliser une seule opération et envoyer le résultat dans un troisième tableau ?

Ma solution passe également par des formules -

Comme tu n'en veux pas, il va falloir alors passer par une macro.

Un de nos spécialistes VBA va bien te trouver cela.

Amicalement

Nad

Nad,

Quelle formule proposes-tu ?

Vincent

Bonjour Headen,

Voici une macro *non optimisée* pour faire le travail (pourrait être long si plusieurs centaines de lignes)

J'ai insérer les 2 listings dans le même classeur et appelé les onglets "Listing A" et "Listing B". Tu pourras adapter au besoin.

Sub Identifier_B_absent_de_A()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim rg1 As Range, rg2 As Range
Dim bExiste As Boolean

Application.ScreenUpdating = False

Set ws1 = ActiveWorkbook.Sheets("Listing A")    'nom de l'onglet du listing A
Set ws2 = ActiveWorkbook.Sheets("Listing B")    'nom de l'onglet du listing B

Set rg1 = ws1.Range("A2")   '1re cellule de recherche dans listing A
Set rg2 = ws2.Range("D2")   '1re cellule de recherche dans listing B

'on boucle à travers toutes les no du listing B
Do Until IsEmpty(rg2)

Application.StatusBar = "Exécution en cours... recherche No " & rg2.Value

    bExiste = False
    'on regarde dans listing A si existe
    Set rg1 = ws1.Range("A2")   '1re cellule de recherche dans listing A
    Do Until IsEmpty(rg1) Or bExiste
        If rg2.Text = rg1.Text Then bExiste = True  'on a trouvé, donc existe dans A
    Set rg1 = rg1.Offset(1, 0)
    Loop

    'si n'existe pas, on identifie
    If Not bExiste Then
        rg2.Offset(0, 1) = "Nouvelle société"
    End If

Set rg2 = rg2.Offset(1, 0)
Loop

Application.StatusBar = False
Application.ScreenUpdating = True

End Sub

A+

Re

Ouvre ton classeur "Listing A" et le classeur "Listing B" que je joins.

Si tu as les formules avec erreur, regarde les noms définis dans "Listing B" et vérifie que le nom Clients pointe bien sur ton Classeur "Listing A" (modifier la formule si besoin - elle doit faire référence à

 ='Listing A.xlsx'!$A1:$A500

)

20listing-b.zip (66.23 Ko)

Amicalement

Nad

Merci pour vos réponses.

Je vais analyser cela à tête reposée et vous reviens au plus vite.

Vinc

Re!

Voici ton listing B en retour (juste le début du fichier) - Recherche effectuée sur le numéro entreprise

La formule est à tirer vers le bas pour la dupliquer.

Cordialement,

Fabienne

23listing-b.zip (14.65 Ko)

Bonsoir à tous,

Bien des communes que je connais là ...

Par code VBA, on peut utiliser une couleur pour identifier les sociétés en listing A que l'on ne retrouve pas en listing B.

Si cette solution t'intéresse plus que celles apportées ici, merci de confirmer. Je te posterai le code.

Une chose à savoir :

Le nom des fichiers sont bien ListingA et ListingB

le nom des feuilles est celui mentionnés dans tes fichiers

le nombre de feuille par fichier ? 1 ou plusieurs ?

A te relire

Rechercher des sujets similaires à "tableaux croises dynamiques"