Renvoi données sur plusieurs onglets selon critères

  • Initiateur de la discussion Initiateur de la discussion Spidtrip
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Spidtrip

XLDnaute Occasionnel
Bonjour à tous,

Je ne peux décidement plus me passer de vous....
Cette fois, j'ai un fichier avec plusieurs régions. Chacune de ces régions regroupent plusieurs départements. J'ai également une liste d'adresse.
Mon objectif est de renvoyer dans un onglet spécifique à sa région (1 par région - à créer automatiquement si impacté) chacune des lignes de l'onglet "Sites".
Comment lancer cela automatiquement d'après vous ?

Je vous joint un fichier d'exemple. Le fichier original ne comportera que les onglets "Liste Depts - Regions" et "Sites", le reste devant être généré automatiquement.

Merci pour votre aide
bye
 

Pièces jointes

Re : Renvoi données sur plusieurs onglets selon critères

Bonjour PierreJean,

Super ta macro, mais je l'ai mis en application de suite, mais j'ai apparemment un pbl sur Paris.
En fait, lorsque je lance la macro après avoir rajouté l'ensemble de mes adresses, dont une adresse à Paris, cette dernière est créée dans un onglet "GUADELOUPE", oups.
Peux-tu me dire comment modifier la macro en conséquence stp.
En tout cas merci, super rapide et tout et tout
bye
 
Re : Renvoi données sur plusieurs onglets selon critères

bonsoir SpidTrip

en effet il y avait bien une erreur

voila qui te donnera Paris

Code:
Option Explicit
Sub test()
Dim c As Range
Dim dep As Integer
Dim n As Integer
Dim x As Integer
Dim flag As Boolean
Application.ScreenUpdating = False
For n = 1 To Sheets.Count
 If Sheets(n).Name <> "Sites" And Sheets(n).Name <> "Liste Depts - Regions" Then
   Sheets(n).Range("A2:C" & Sheets(n).Range("A65536").End(xlUp).Row + 1).ClearContents
 End If
Next n
For n = 2 To Sheets("Sites").Range("B65536").End(xlUp).Row
 dep = Val(Sheets("Sites").Range("B" & n)) / 1000
With Worksheets("Liste Depts - Regions").Range("A2:A" & Worksheets("Liste Depts - Regions").Range("A65536").End(xlUp).Row)
    Set c = .Find(dep, LookAt:=xlWhole)
    If Not c Is Nothing Then
       For x = 1 To Sheets.Count
         If Sheets(x).Name = .Range("C" & c.Row) Then
           
           Sheets("Sites").Range("A" & n & ":C" & n).Copy Destination:=Sheets(x).Range("A65536").End(xlUp).Offset(1, 0)
           flag = True
         End If
       Next x
       If flag = False Then
          [COLOR=red]Worksheets.Add.Name = Worksheets("Liste Depts - Regions").Range("C" & c.Row)
[/COLOR]          Sheets("Sites").Range("A1:C1").Copy Destination:=ActiveSheet.Range("A1")
          Sheets("Sites").Range("A" & n & ":C" & n).Copy Destination:=ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
       End If
       flag = False
    End If
End With
Next n
Sheets("Sites").Select
Application.ScreenUpdating = True
End Sub

[\code]
 
Re : Renvoi données sur plusieurs onglets selon critères

Bonjour à tous,

Voilà, j'utilise la macro que PierreJean m'a gentillement créé, mais je me retrouve avec debogage au niveau de : -> Worksheets.Add.Name = Worksheets("Liste Depts - Regions").Range("C" & c.Row)

Option Explicit
Sub test()
Dim c As Range
Dim dep As Integer
Dim n As Integer
Dim x As Integer
Dim flag As Boolean
Application.ScreenUpdating = False
For n = 1 To Sheets.Count
If Sheets(n).Name <> "Sites" And Sheets(n).Name <> "Liste Depts - Regions" Then
Sheets(n).Range("A2:C" & Sheets(n).Range("A65536").End(xlUp).Row + 1).ClearContents
End If
Next n
For n = 2 To Sheets("Sites").Range("B65536").End(xlUp).Row
dep = Val(Sheets("Sites").Range("B" & n)) / 1000

With Worksheets("Liste Depts - Regions").Range("A2:A" & Worksheets("Liste Depts - Regions").Range("A65536").End(xlUp).Row)
Set c = .Find(dep, LookAt:=xlWhole)
If Not c Is Nothing Then

For x = 1 To Sheets.Count
If Sheets(x).Name = .Range("C" & c.Row) Then

Sheets("Sites").Range("A" & n & ":C" & n).Copy Destination:=Sheets(x).Range("A65536").End(xlUp).Offset(1, 0)
flag = True
End If
Next x
If flag = False Then
Worksheets.Add.Name = Worksheets("Liste Depts - Regions").Range("C" & c.Row)
Sheets("Sites").Range("A1:C1").Copy Destination:=ActiveSheet.Range("A1")
Sheets("Sites").Range("A" & n & ":C" & n).Copy Destination:=ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
End If
flag = False
End If
End With
Next n
Sheets("Sites").Select
Application.ScreenUpdating = True
End Sub


Je vous joint le fichier de test
Merci pour votre aide
bye
 

Pièces jointes

Re : Renvoi données sur plusieurs onglets selon critères

Re tout le monde,

J'ai une précision complémentaire, voici ce qui est affiché dans la fenêtre après avoir lancé la macro :

"erreur d'exécution 1004"

Impossible de renommer une feuille comme une autre feuille, une bibliothèque d'objets référencée ou un classeur référencé par visual basic.

Est-ce que cela vous parle mieux ?

Merci d'avance pour vos réponses.
bye
 
Re : Renvoi données sur plusieurs onglets selon critères

bonjour SpidTrip

Toutes mes excuses

je me suis fait pieger par un With

Voila ton fichier réparé pour l'instant

J'en profite pour te signaler que la recherche est basée sur les 2 premiers chiffres du code postal et que cela ne correspond pas en ce qui concerne la corse la guadeloupe ,réunion etc
Si tu dois avoir des sites la_bas donne moi des exemples afin que je traite ces cas particuliers
a titre indicatif c'est Excel_lent qui m'a mis la puce a l'oreille concernant ces cas particuliers
 

Pièces jointes

Re : Renvoi données sur plusieurs onglets selon critères

Une nouvelle fois, merci PierreJean.
Tu es complètement excusé, tu me donnes tout de même à bon coup de main.
Sinon, je risque effectivement d'avoir des cas pour la Corse.
Je relancerai la discussion le moment venu pour te demander ton avis.
Encore merci et bon week-end
bye
 
Re : Renvoi données sur plusieurs onglets selon critères

Bonjour PierreJean, Le forum


Je repasse parmi vous car je viens de m'apercevoir que le fichier m'indique le département du 35 dans la Centre Val de Loire alors qu'il fait partie de la région Bretagne.

Merci pour votre aide.
bye
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

N
Réponses
24
Affichages
4 K
Nico17620
N
P
Réponses
0
Affichages
794
Pat13127
P
P
Réponses
4
Affichages
1 K
pauline29
P
L
Réponses
2
Affichages
1 K
L
M
Réponses
4
Affichages
704
M
L
Réponses
2
Affichages
776
C
Réponses
4
Affichages
1 K
C
A
Réponses
0
Affichages
8 K
Arpopa
A
Retour