Microsoft 365 Copier lignes vers onglet en fonction d'une valeur

  • Initiateur de la discussion Initiateur de la discussion pierrof
  • 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 !

pierrof

XLDnaute Occasionnel
Bonjour,

je souhaite pour mon nouveau projet recopier les lignes d'une feuille en fonction d'une valeur (code insee) vers un autre onglet (il peut y avoir plusieurs onglets)

J'ai un onglet Data qui récence des codes insee avec des locaux, et donc en fonction des code Insee de mon export j'aimerai classer les lignes par local.

Je laisse un fichier exemple pour plus de clarté.

Merci d'avance de votre aide.

Cordialement
 

Pièces jointes

Solution
Bonjour Pierrof,
Un essai en PJ avec :
VB:
Sub Répartir()
    Dim L%, Commune, Feuille, DL%, NoL%, Qté%
    Application.ScreenUpdating = False
    Qté = 0
    For L = 2 To Range("A65500").End(xlUp).Row
        Commune = Cells(L, "P")
        If Application.CountIf(Sheets("Data").[A:A], Commune) = 0 Then
            MsgBox "La commune " & Commune & " n'est pas référencée dans Data."     ' Le CP n'est pas dans la base
        Else
            NoL = Application.Match(Commune, Sheets("Data").[A:A], 0): Feuille = Sheets("Data").Cells(NoL, "D")
            If FeuilleExiste(Feuille) = False Then
                MsgBox "La feuille " & Feuille & " n'existe pas."                   ' la feuille n'existe pas
            Else
                Dossier...
Bonjour Pierrof,
Un essai en PJ avec :
VB:
Sub Répartir()
    Dim L%, Commune, Feuille, DL%, NoL%, Qté%
    Application.ScreenUpdating = False
    Qté = 0
    For L = 2 To Range("A65500").End(xlUp).Row
        Commune = Cells(L, "P")
        If Application.CountIf(Sheets("Data").[A:A], Commune) = 0 Then
            MsgBox "La commune " & Commune & " n'est pas référencée dans Data."     ' Le CP n'est pas dans la base
        Else
            NoL = Application.Match(Commune, Sheets("Data").[A:A], 0): Feuille = Sheets("Data").Cells(NoL, "D")
            If FeuilleExiste(Feuille) = False Then
                MsgBox "La feuille " & Feuille & " n'existe pas."                   ' la feuille n'existe pas
            Else
                Dossier = Cells(L, "A")
                If Application.CountIf(Sheets(Feuille).[A:A], Dossier) = 0 Then    ' Dossier non enregistré
                    DL = 1 + Sheets(Feuille).Range("A65500").End(xlUp).Row
                    Sheets(Feuille).Range("A" & DL & ":P" & DL) = Range("A" & L & ":P" & L).Value
                    Qté = Qté + 1
                End If
            End If
        End If
    Next L
    MsgBox "Nombre de dossier exportés : " & Qté
End Sub
Je teste si la commune existe et si la feuille existe.
Sans info sur ce point, les dossiers rangés ne sont pas supprimés de la base.
 

Pièces jointes

Bonjour pierrof, sylvanu,

Il me semble que la feuille VF doit récupérer aussi les données de la commune 95001.

Donc comme A2, ce n'est pas une ventilation mais un filtrage.

A+
Bonjour job75,
Oui en effet tu as raison, mais normalement je ne dois pas avoir de doublons de commune dans ma feuille Data... c'est quand j'ai voulu anonymiser les données que je fais ce doublon.
Merci quand même.
Bonne journée
 
- 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

Retour