Lister valeurs en fonction du mois sans doublon

Bonjour,

Après un peu de temps passé sur un Excel je n'arrive pas à effectuer quelque chose en VBA car je pense manquer de connaissances, j'ai essayé plusieurs choses mais la méthode est à chaque fois longue et je suis sûr qu'il est possible de faire ça beaucoup plus facilement.

En PJ un échantillon de mon sujet.

J'ai 2 feuilles (Booking et Lastminute, 2 sites internets par exemple) avec des données de type date et Ville.

exemple macro donnees

J'aimerais dans une 3ème feuille lister toutes les villes présentes sur mes 2 feuilles de données en fonction d'une cellule Mois sans doublon et en fonction du site (donc du nom de la feuille).

Exemple :

exemple macro resultat

A savoir que je n'aurai pas beaucoup de feuilles et qu'il est possible d'executer "séparément" la formule pour chaque feuille. (D'abord lister toutes les villes pour la feuille Booking, puis ensuite les villes de la feuille Lastminute)

Merci à vous car ma méthode testée est vraiment compliquée par rapport à la simplicité du problème Peut-être même qu'il est possible de faire ça sans VBA ?

Cordialement

7exemple-macro.xlsx (13.39 Ko)

Bonjour,

Une proposition Power Query de ce que j'ai compris (donc pas tout !)

A te relire.

Cdlt.

2arthur-vba.xlsx (21.87 Ko)

bonjour

avec un report des données pour avoir une unique zone (astuce, mais veille à laisser des lignes vides pour prévoir l'extension des données)

puis un TCD

sans macro, ni formule complexe

amitiés

Bonjour,

Je te propose la solution suivante:

(Merci de porter un intérêt au deux solutions )

Salut jmd

Bonjour tlm !

Une autre proposition en passant par VBA

Code :

Private Sub Worksheet_Activate()
Range("B1,B2,A5:B" & Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Long, c As Range
If [B1] <> "" And [B2] <> "" And (Target.Address = "$B$1" Or Target.Address = "$B$2") Then
    Range("A5:B" & Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents
    For x = 2 To Sheets("" & [B2] & "").Range("B" & Rows.Count).End(xlUp).Row
        Set c = Columns(2).Find(Sheets("" & [B2] & "").Cells(x, 2))
        If c Is Nothing And Month(Sheets("" & [B2] & "").Cells(x, 1)) = Month("01 " & Cells(1, 2) & " 2018") Then
            Cells(Range("A" & Rows.Count).End(xlUp).Row + 1, 1) = [B2]
            Cells(Range("B" & Rows.Count).End(xlUp).Row + 1, 2) = Sheets("" & [B2] & "").Cells(x, 2)
        End If
    Next
End If
End Sub

A dispo!

5pour-arthur.xlsm (24.52 Ko)

bonjour

un essai

il aurait été preferable de ne pas creer un onglet par site qui à mettre tout en vrac dans le meme (plus simple )

5arthur.xlsx (23.09 Ko)

cordialement

Toujours impressionné par votre capacité à répondre rapidement et votre générosité ! Toutes les méthodes ici fonctionnent et je vous en remercie, j'ai même trop de choix maintenant , j'aurai une petite préférence pour le VBA finalement (reste à adapter à mon projet mais au moins j'ai la méthode !) car cela évite de regrouper toute les lignes dans un autre tableau.

Sachant que j'ai des calculs à faire à partir de ces résultats sur les colonnes de droite, le TCD n'est pas le plus adapté.

De plus @tulipe_4 mon projet nécessite d'avoir plusieurs onglets donc je préférais éviter d'utiliser le "vrac" !

Mais ça je ne l'ai pas précisé et vous ne pouviez pas le savoir (désolé !)

Un grand merci à tout le monde, et mention spéciale pour le Power Query de @Jean-Eric , je n'en avais jamais entendu parler !

RESOLU

Re

Merci tout d'abord merci d'avoir fait un retour à tous les membres alors que tu aurais pu t'arrêter à la première solution qui fonctionne

C'est vrai que PowerQuery n'est pas très connu, c'est ce que disait Jean-Eric sur un de ses post, on a du retard en France par rapport à ça

Merci d'avoir passé le sujet en résolu

Rechercher des sujets similaires à "lister valeurs fonction mois doublon"