Ecrire sur plusieurs feuilles avec CheckBox

Re,

Les modifications sont effectués, en effet, ça a plus de sens

Bonjour,

Ok. On passe au step suivant. Allez dans votre userform et modifiez selon les points suivants :

1. Procédure Annuler --> Supprimez le END

2. Procédure Valider --> Remplacez le code que vous avez par celui ci-dessous

Private Sub Valider_Click()
Dim Ws As Worksheet
Dim i As Byte, j As Byte
Dim lig As Integer

'Sequence de controle checkbox et rubriques territoire et partenaire
For i = 1 To 6
    If Me.Controls("CheckBox" & i) = False Then j = j + 1
Next i
If j = 6 Then MsgBox "Veuillez cochez une case dans la rubrique Secteur du Partenaire !": Exit Sub
If Me.ComboBox1 = "" Or Me.ComboBox2 = "" Or Me.TextBox1 = "" Then _
    MsgBox "Une information est manquante ! Veuillez choisir :" & vbCrLf & vbCrLf & _
     "Un type de partenaire" & vbCrLf & _
     "Un nom de partenaire" & vbCrLf & _
     "Un Territoire", , "Informations manquantes !": Exit Sub

'ajout des donnees
For i = 1 To 6
    If Me.Controls("CheckBox" & i) = True Then
        Select Case CByte(Right(Me.Controls("CheckBox" & i).Name, 1))
            Case Is = 1: Set Ws = Feuil1
            Case Is = 2: Set Ws = Feuil2
            Case Is = 3: Set Ws = Feuil3
            Case Is = 4: Set Ws = Feuil4
            Case Is = 5: Set Ws = Feuil5
            Case Is = 6: Set Ws = Feuil6
        End Select

        With Ws.ListObjects(Ws.ListObjects(1).Name)
            If .ListRows.Count = 0 Then
                .ListRows.Add: lig = 1
            Else: .ListRows.Add: lig = .ListRows.Count
            End If
            With .DataBodyRange
                .Item(lig, 1) = Me.ComboBox1.Value 'Type partenaire'
                .Item(lig, 2) = Me.TextBox1.Value 'Nom partenaire'
                .Item(lig, 3) = Me.ComboBox2.Value 'Territoire
                .Item(lig, 4) = Me.TextBox2.Value 'Rue
                .Item(lig, 5) = Me.TextBox3.Value 'Code postal
                .Item(lig, 6) = Me.TextBox4.Value 'Ville
                .Item(lig, 7) = Me.TextBox5.Value 'Personne contact
                .Item(lig, 8) = Me.TextBox6.Value 'Mail
                .Item(lig, 9) = Me.TextBox7.Value 'Téléphone
                .Item(lig, 10) = Me.TextBox8.Value 'Commentaire
            End With

        End With
    End If
Next i
MsgBox "Saisie effectuée, vous pouvez quitter"
End Sub

Vous verrez que j'ai ajouté au début du code
- Un contrôle pour que soit vérifié si vous avez au moins coché une case à coché
- Une Msgbox qui vous impose de mettre une info dans les 3 premières rubriques de l'USF (Type, nom partenaire et territoire)

Dites moi si ok après test

Cordialement

Bonjour,

Toutes les modifications sont faites, le code fonctionne très bien. J'effectuerai quelques recherches pour être sûr de bien tout comprendre mais je pense saisir une bonne partie du code.

Je vous remercie, c'est très clair !

Parfait !

J'effectuerai quelques recherches pour être sûr de bien tout comprendre mais je pense saisir une bonne partie du code.

Si besoin posez vos questions, je vous suis sur ce fil.

A moins que vous ne vouliez le fermer bien entendu ?

J'aurai seulement une dernière question si possible. J'aimerai que toutes les données que je rentre dans les différentes feuilles via le formulaire puisse en plus se copier automatiquement dans une feuille globale afin que toutes les données soient dans un même tableau aussi.

Est ce possible ?

Le but serait de créer un petit moteur de recherche sur cette feuille globale pour pouvoir effectuer quelques recherches selon des critères autre que les différents secteurs.

Dans tous les cas, je vous remercie beaucoup pour votre aide et vos conseils très précieux

J'aurai seulement une dernière question si possible. J'aimerai que toutes les données que je rentre dans les différentes feuilles via le formulaire puisse en plus se copier automatiquement dans une feuille globale afin que toutes les données soient dans un même tableau aussi.

Je me posais la question en ayant vu cette feuille dans votre dernier fichier. Mais vous auriez pu faire le contraire, à savoir de rentrer les infos dans la feuille Globale et avec la fonction Segment, vous pouviez filtrer sur place la feuille.
Du coup un seule feuille dans votre fichier... au lieu de 7 ....

Dites moi si pas plus simple.

C'est vrai que ça pourrait être plus simple aussi.

Je pense faire ce fichier avec une seule feuille plus tard (ça devrait être moins compliqué j'imagine). Je me demandais juste si il était possible d'insérer dans le code une fonction "copier dans le tableau globale" lorsque le bouton valider est activé.

Je pense faire ce fichier avec une seule feuille plus tard (ça devrait être moins compliqué j'imagine)

Bah c'est mieux de prévoir cela au départ. Dans ce cas le code sera à revoir.

Je me demandais juste si il était possible d'insérer dans le code une fonction "copier dans le tableau globale" lorsque le bouton valider est activé

C'est tout à fait possible aussi. On peut juste rajouter les lignes dans le code actuel si vous voulez. Solution simple et directe et je peux vous adapter le code.

NB : Sachez que si vous conservez cette structure, la fonction Power Query peut aussi faire le travail pour la feuille Globale

Crdlt

Ouais, j'ai un peu merdé sur ce coup, mais je verrai ça une autre fois.

Pour ce qui est de rajouter la ligne de code, je veux bien essayer de voir comment faire.

Cordialement

Comment doit être présentée la feuille Global sachant que l'on doit rajouter une colonne pour le secteur ? Je prends la colonne A ?
Aussi les titres seront bien en ligne 1 ?

Le mieux serait en effet de mettre le secteur en colonne A et les titres resteront bien en ligne 1. Sinon pour le reste, le format du tableau reste le même.

Voici ce que vous devez faire

- Dans votre feuille Global, mettez les titres comme sur la vue ci-dessous
- une fois fait, sélectionnez les titres
- cliquez sur l'icone "mettre sous forme de tableau", choisir un modèle et cochez la case "mon tableau a des en-têtes
- Allez dans le gestionnaire de noms et sélectionnez le nom du nouveau tableau créé
- cliquez sur "Modifier" et changez le nom du tableau --> "TabGlobal"
- Allez dans l'usf
- Dans le code Valider, à la fin du code vous avez un END IF puis un NEXT i. Juste avant ce END IF, mettez les lignes de code ci-dessous

        'ajout données dans la feuille global
        With Sheets("Global").ListObjects("TabGlobal")
            If .ListRows.Count = 0 Then
                .ListRows.Add: lig = 1
            Else: .ListRows.Add: lig = .ListRows.Count
            End If
            With .DataBodyRange
                .Item(lig, 1) = Ws.Name 'secteur partenaire
                .Item(lig, 2) = Me.ComboBox1.Value 'Type partenaire'
                .Item(lig, 3) = Me.TextBox1.Value 'Nom partenaire'
                .Item(lig, 4) = Me.ComboBox2.Value 'Territoire
                .Item(lig, 5) = Me.TextBox2.Value 'Rue
                .Item(lig, 6) = Me.TextBox3.Value 'Code postal
                .Item(lig, 7) = Me.TextBox4.Value 'Ville
                .Item(lig, 8) = Me.TextBox5.Value 'Personne contact
                .Item(lig, 9) = Me.TextBox6.Value 'Mail
                .Item(lig, 10) = Me.TextBox7.Value 'Téléphone
                .Item(lig, 11) = Me.TextBox8.Value 'Commentaire

            End With
        End With

Si ok je vous expliquerai le filtre à l'aide de Segments

Cordialement

Je vous remercie encore, tout est ok !

Je veux bien l’explication des filtres à l'aide de segments

Je veux bien l’explication des filtres à l'aide de segments

- Dans la feuille Global, positionnez vous dans une cellule
- dans le menu excel cliquez sur"Creation Tableau" puis sur "Segment"
- Vous obtenez la fenêtre ci-dessous et dans laquelle vous pouvez choisir ce dont vous aurez besoin en matière de filtre (exemple j'ai coché la car secteur partenaire

presse papier01

- Une fois cliqué sur Ok vous obtiendrez une fenetre avec la liste des données existante en colonne Secteur partenaire. exemple ci-dessous

presse papier03

- Positionnez cette fenêtre en dehors du tableau et lorsque vous aurez besoin de voir un secteur, il vous suffira de choisir dans cette fenêtre
- Le filtre agira sur toutes les données du tableau

Si ok et terminé ,....

Si non, à votre disposition pour toute question

Cordialement

Merci encore pour toutes ces explications, c'était top, j'ai appris une tonne de choses.

Je ferme le sujet !

Encore merci

Rechercher des sujets similaires à "ecrire feuilles checkbox"