Traitement base de données

Bonsoir à tous,

Je vous explique ce que je souhaite faire.

Je dispose d'une base de donnée avec des informations relatifs à des personnes. (nom, prénom, âge, profession etc...) sur une première page qui va me servir de base de donnée de référence. Je souhaite ajouter deux pages différentes (l'une professionnel et l'autre particulier). L'objectif étant de renseigner uniquement sur la première page toutes les personnes que je souhaite et qu'ensuite soit insérer automatiquement les personnes dans les différents pages selon qu'ils soient professionnels ou particuliers. Certainement un jeu de rechercheH ou V mais je suis complètement perdu !

Merci de votre aide !

Le fichier est en pièce jointe.

15forum.zip (45.88 Ko)

Bonjour

avec un Code dans ThisWorkbook trouvé sur le Forum et adapté

Cordialement

10forum.zip (50.18 Ko)

merci de ton aide !

Et si jamais je souhaite utiliser une autre variable par exemple par sexe (M/F), comment je dois l'ajouter dans ta macro afin d'avoir deux autres feuilles qui se remplissent toutes seules.

Encore merci !

Bonjour,

L'utilisation d'un filtre avancé vous permettrait de gérer cela sans code ou avec une macro simpliste enregistrée avec l'enregistreur de macros

Cordialement

10rousseau49.zip (45.92 Ko)

Bonjour

avec un Code dans ThisWorkbook trouvé sur le Forum et adapté

Cordialement

merci de ton aide !

Et si jamais je souhaite utiliser une autre variable par exemple par sexe (M/F), comment je dois l'ajouter dans ta macro afin d'avoir deux autres feuilles qui se remplissent toutes seules.

Encore merci !

Bonjour

Le Code dans This WorkBook est bien documenté et devrait te permettre de faire facilement ton ajout de 2 feuilles.

Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' Ce code est lancé après qu'une feuille quelconque ait été activée
Dim i As Integer, j As Integer
Application.ScreenUpdating = False
If Range("T1") = "Professionnel" Or Range("T1") = "Particulier" Then
' Si la cellule T1 de la feuille sélectionnée comporte l'une de ces abréviations, alors ...
' (Sinon il ne se passe rien et le code s'arrête là)
    Range("A2:K200").ClearContents
    ' ... on vide le contenu des lignes 2 à 200 de la feuille sélectionnée et ...      
    With Sheets("Prospect")
    ' With / End With permet de travailler sur deux feuilles en parallèle
    ' Ci-dessous, les reférences avec un point devant concerne la feuille
    ' indiquée ci-dessus, les références sans point celles de la feuille sélectionnée

        For i = 2 To .Range("A200").End(xlUp).Row
        ' Permet de passer en revue toutes les lignes de la feuille "Prospect" jusqu'à ligne 200"

            If .Range("H" & i) = Range("T1") Then
            ' Si la cellule de la colonne E de la ligne passée en revue de la feuille "Prospect"
            ' correspond à la cellule T1 de la feuille sélectionnée alors .......

                j = Range("A200").End(xlUp).Row + 1
                ' On cherche à chaque fois quelle est la première ligne vide de la feuille sélectionnée ...

                .Range("A" & i & ":K" & i).Copy Destination:=Range("A" & j)
                ' ... et on copie la ligne concernée de la feuille "Prospect"
                ' pour la coller après la dernière ligne de la feuille sélectionnée

            End If
        Next i
    End With
End If

End Sub

Pour rajouter par exemple 2 feuilles "homme" et "Femme", tu fais une copie d' une feuille précédente que tu nommes "Homme" et "Femme"

et tu complète la ligne de Code

If Range("T1") = "Professionnel" Or Range("T1") = "Particulier" Then

en

If Range("T1") = "Professionnel" Or Range("T1") = "Particulier" Or Range("T1") = "Homme"Or Range("T1") = "Femme"Then

Cordialement

11forum.zip (50.92 Ko)
Rechercher des sujets similaires à "traitement base donnees"