Mettre les cellules d'une ligne dans un tableau

Bonjour,

Je vous propose de supprimer ceci

- le module 6 qui était relatif à la feuille Copy creation nom
- le module Retour Accueil Saisie qui comportait la macro Sub RETOUR_CREATION_NOM()
- le module RETOURACCUEILRECAPANNUEL
- le module RETOURACCUEILRECAPITULATIF
- le module RETOURCHOISIRSESCRITERES

On conserve le module RETOUR_ACCUEIL que l'on pourrait renommer peut être simplement RETOUR (y garder tout ce qui est Retour) . Là dites-moi quel nom vous gardez ?
Placer le code ci-dessous qui permet de revenir sur la feuille Accueil et qui sera associé à chaque bouton "Retour Accueil" dans votre fichier

Sub RETOUR_ACCUEIL() 'Retour sur la feuille Accueil
With Activsheet
    .Protect
    .Visible = False
End With

With Sheets("ACCUEIL")
    .Visible = True
    .Activate
    .Range("A1").Select
End With
End Sub

Attention : pas de protect sur la feuille Accueil. Celle-ci est effectuée automatiquement par le code qui est dans la feuille Accueil

Bonjour Dan,

Je vous propose de supprimer ceci

Fait pour tous les points.

On conserve le module RETOUR_ACCUEIL

on pourrait renommer peut être simplement RETOUR

Là dites-moi quel nom vous gardez ?

RETOUR

Sub RETOUR_ACCUEIL()

Fait, mais il bloque sur:

With Activsheet

.Protect

Erreur exécution '424'

Objet requis

Bonne réception.

Fait, mais il bloque sur:
With Activsheet
.Protect

Dans quelle feuille cliquez-vous sur le bouton Retour Accueil ?

Vérifiez que votre bouton est associé à la macro Retour accueil

Re,

Je suis sur feuille RECAPITULATIF ANNUEL.

Module: RETOUR

retour

Bonne réception.

Je suis sur feuille RECAPITULATIF ANNUEL.

Il manque un e à ActivEsheet


Au delà de ce souci, je vous vous propose de faire un module RECAPITULATIF dans lequel vous pourriez mettre tous les codes liés aux deux boutons Recap présents à droite sur la feuille Accueil.

Votre avis ?

Re,

je vous vous propose de faire un module RECAPITULATIF

Ok pas de problème.

Je viens de le faire.

Le E manquant de Activesheet, m'a échappé.

Aprés, j'ai bloqué sur:

.visible = False.

Lorsqu'au départ j'ai fait mes codes, je me suis apercu qu'excel voulait avoir toujours une feuille ou un "ONGLET" ACTIF dans le classeur.

Il faut afficher la feuille ou l'on veut aller en premier et après masquer la feuille qui était active ou que l'on ne veut plus.

Donc j'ai modifié votre code et là plus de problème

Sub RETOUR_ACCUEIL() 'Retour sur la feuille Accueil

With Sheets("ACCUEIL")
    .Visible = True
    .Activate
    .Range("A1").Select
End With

With Sheets("FORMULAIRE")
    .Protect
    .Visible = False
End With

End Sub

J'ai donc rattaché ce code au bouton VERT RETOUR VERS ACCUEIL de la feuille FORMULAIRE

IMPECCABLE

J'ai ensuite rattaché le bouton mauve RETOUR ACCUEIL de la feuille CHOISIR CRITERES et pareil pour les feuilles RECAPITULATIF ET RECAPITULATIF ANNUEL.

Sauf que le code et avec with sheets ("FORMULAIRE")

Ces trois feuilles la, restent visibles.

Quand on est sur la feuille CHOISIR CRITERES, il faudrait with sheets ("CHOISIR CRITERES")

Quand on est sur la feuille RECAPITULATIF, il faudrait with sheets ("RECAPITULATIF")

Quand on est sur la feuille RECAPITULATIF ANNUEL, il faudrait with sheets ("RECAPITULATIF ANNUEL")

Faut-il que je crée trois codes différents (en recopiant votre code sub retour accueil) et changer le nom sub et les rattacher à chaque bouton de chaque feuille ou y a t il une autre solution?

Bonne réception.

Bonjour Dan,

Je viens de m'apercevoir d'une petite erreur sur le code ci-joint:

https://forum.excel-pratique.com/s/goto/1163296

range F16 = ligne 8

range F18 = ligne 11

    .Range("F16") = tb.DataBodyRange(lig, 8).Value
    .Range("F18") = tb.DataBodyRange(lig, 11).Value

Je l'ai modifié de mon côté.

Cordialement.

Re,

Ci-joint code modifié.

    .Range("F16") = tb.DataBodyRange(lig, 8).Value
    .Range("F18") = tb.DataBodyRange(lig, 9).Value
    .Range("F20") = tb.DataBodyRange(lig, 10).Value
    .Range("F22") = tb.DataBodyRange(lig, 11).Value
    .Range("F24") = tb.DataBodyRange(lig, 12).Value
    .Range("F26") = tb.DataBodyRange(lig, 13).Value
    .Range("F28") = tb.DataBodyRange(lig, 14).Value
    .Range("F30") = tb.DataBodyRange(lig, 15).Value
    .Range("F32") = tb.DataBodyRange(lig, 16).Value
    .Range("F34") = tb.DataBodyRange(lig, 17).Value
    .Range("F36") = tb.DataBodyRange(lig, 18).Value
    .Range("F38") = tb.DataBodyRange(lig, 1).Value

Bonne réception.

Bonjour

Lorsqu'au départ j'ai fait mes codes, je me suis apercu qu'excel voulait avoir toujours une feuille ou un "ONGLET" ACTIF dans le classeur.
Il faut afficher la feuille ou l'on veut aller en premier et après masquer la feuille qui était active ou que l'on ne veut plus.

Si vous n'avez toujours que deux feuilles max affichées, le code que je vous ai donné ne fonctionnera pas correctement car comme vous l'avez constaté il faut toujours une feuille active.

Faut-il que je crée trois codes différents (en recopiant votre code sub retour accueil) et changer le nom sub et les rattacher à chaque bouton de chaque feuille ou y a t il une autre solution?

Non, on crée juste un seul code.
Modifiez le code que je vous ai donné comme ceci :

Sub RETOUR_ACCUEIL() 'Retour sur la feuille Accueil
Dim feuille As String

feuille = ActiveSheet.Name
With Sheets("ACCUEIL")
    .Visible = True
    .Activate
    .Range("A1").Select
End With

With Sheets(feuille)
    .Protect
    .Visible = False
End With
End Sub

Ensuite associez-le à tous vos boutons "Retour accueil" de chaque feuille.


Je viens de m'apercevoir d'une petite erreur sur le code ci-joint:

Effectivement. J'ai corrigé mais il faut aussi modifier sur le code Sub bouton4_cliquer.

Edit : le code ACCUEIL_Bouton4_Cliquer modifié dans le fichier joint

Re,

IMPECCABLE.

SUPER.

Tout est fait.

Bonne réception.

Ok

Pouvez-vous m'expliquer ce que dois faire le bouton ver "voir récap par entreprise"

Là je vois que vous arrivez sur la feuille CHOISIR CRITERES. Il faut juste remettre les segments à jour (donc sans filtre) et actualiser le TCD en feuille Recap et rendre visible la feuille Recap ou pas ?

Le nom du code semble être "Voir segments". Vous conservez ce nom ?


Autre question : que pensez-vous de créer un module Recapitulatif dans lequel vous auriez tout ce qui concerne les feuilles Recap ?
On supprimerait, les modules
- Supprimerleschoix
- Voirrecapitulatif
- voirrecapitulatifannuel
- deverrouillerrecap

On n'y mettrait les codes qui concernent les boutons sur les deux feuilles Recap et Reacpannuelle (sauf ceux du bouton retour Acueil bien entendu)

NB : Recapitulatifclientnuméro (ce module ne me semble plus servir vu que l'on parle d'une feuille Visualisation_nom qui est supprimée du fichier)

Re,

Là je vois que vous arrivez sur la feuille CHOISIR CRITERES. Il faut juste remettre les segments à jour (donc sans filtre)

OUI.

actualiser le TCD

OUI.

rendre visible la feuille Recap

NON.

Quand je suis sur la feuille CHOISIR CRITERES, je deverouille cette feuille par l'intermédiaire du bouton JAUNE et je fais la sélection qui m'interesse, suivant les différents tableaux.

Une fois les sélections faites, je clique sur le bouton VOIR TABLEAU RECAPITULATIF. C'est à ce moment que je vais sur la feuille recap aprés avoir fait ma sélection.

Si les choix ne me plaisent pas, j'ai la possibilité de remettre les tableaux sans filtres en cliquant sur le bouton SUPPRIMER LES CHOIX, toujours sur la feuille CHOISIR CRITERES.

Autre question : que pensez-vous de créer un module Recapitulatif dans lequel vous auriez tout ce qui concerne les feuilles Recap ?

On n'y mettrait les codes qui concernent les boutons sur les deux feuilles Recap et Reacpannuelle

OK.

NB : Recapitulatifclientnuméro (ce module ne me semble plus servir vu que l'on parle d'une feuille Visualisation_nom qui est supprimée du fichier)

OUI, vous avez tout à fait raison.

Ce code était rattaché au bouton bleu ciel VISUALISATION LIGNE ENTREPRISE de la feuille ACCUEIL.

Maintenant, on passe par le bouton jaune MODIFICATION LIGNE ENTREPRISE de la feuille ACCUEIL.

Suivant votre conseil il sert de visualisation ou de modification.

Ce qui est trés bien.

Bonne réception.

Quand je suis sur la feuille CHOISIR CRITERES, je deverouille cette feuille par l'intermédiaire du bouton JAUNE et je fais la sélection qui m'interesse, suivant les différents tableaux.

A priori je ne vois pas l'intérêt du bouton Jaune parce que si vous allez sur la feuille Critère c'est pour choisir des critères.

Pourquoi dès lors, vous devez en plus ciiquer sur le bouton jaune pour déverrouiller la feuille alors que l'on peut le faire directement lors de l'affichage.

Re,

Je mets une sécurité, mais ça, c'est moi.

Autrement, je suis d'accord avec vous.

La feuille peut être automatiquement déverouillée.

Cordialement.

Ok. Mais il n'y aurait nul besoin de mettre des "protect" partout quand les feuilles sont masquées. Cela complique un peu...
Peut être avoir des protection dans les feuille accueil et formulaire, mais ailleurs ?....
A voir plus tard si vous voulez


Pour le point Recapitulatif :

- Créez d'abord un module Recapitulatif (attention ne mettez pas un accent sur le e)
- Mettez-y les deux codes ci-dessous

Sub VOIR_SEGMENTS() 'afficher feuille critère et mise à TCD dans feuille recap

With Sheets("RECAPITULATIF")
    .Unprotect
    .PivotTables(1).PivotCache.Refresh
    '.Protect
    '.Visible = False
End With

With Sheets("CHOISIR CRITERES")
    .Visible = True
    .Activate
    .Unprotect

    Call SUPPRIMER_LES_CHOIX 'enlever les filtres segments

    .Range("A1").Select

End With

Sheets("ACCUEIL").Visible = False
End Sub

Sub SUPPRIMER_LES_CHOIX() 'Supprimer les choix segments
Dim slicer As SlicerCache

With Sheets("CHOISIR CRITERES")
    .Unprotect
    For Each slicer In ThisWorkbook.SlicerCaches
        slicer.ClearManualFilter
    Next slicer
    .Range("A1").Select
    .Protect
End With
End Sub

Faites un test.

Re,

Le test est plus que très positif.

Bonne réception.

Ok.

sur la feuille Choix critères, les boutons sont associés aux macros suivantes :
- Retour accueil --> code RETOUR_ACCUEIL
- Supprimer les choix --> code SUPPRIMER_LES_CHOIX (module Recapitulatif)
- boutons jaunes --> A supprimer


Dans le module Recapitulatif, ajoutez ce code

Sub VOIR_RECAPITULATIF() 'Afficher feuille recapitulatif et mise en forme

With Sheets("RECAPITULATIF")
    .Visible = True
    .Activate
    .Unprotect
    .PivotTables(1).PivotCache.Refresh

    .Range("B6:G6").Interior.Color = 16777215
    .Rows("6:6").RowHeight = 1.1

    .Columns("B:N").AutoFit
    .Range("A1").Select
    .Protect
End With

Sheets("CHOISIR CRITERES").Visible = False
End Sub

Associez le bouton Voir tableau récapitulatif à ce code

Dites-moi si ok.

Re,

IMPECCABLE.

La ligne du dessous.........Rien ne vous échappe.

.Range("B6:G6").Interior.Color = 16777215

.Rows("6:6").RowHeight = 1.1

Cordialement.

Re,

j'ai rajouté cette fonction au code suivant:

Sub VOIR_SEGMENTS() 'afficher feuille critère et mise à TCD dans feuille recap

With Sheets("RECAPITULATIF ANNUEL")
    .Unprotect
    '.PivotTables(1).PivotCache.Refresh
    '.Protect
    '.Visible = False
End With

J'avais un message erreur éxecution 1004

impossible exécuter commande tant qu'une feuille protégée contient un autre rapport de tableau croisé basé sur les mêmes données sources.

Re,

Pourriez vous m'indiquer ou je peux retrouver le code:

Sub RETOUR_RUBRIQUE()

Qui est dans la feuille RUBRIQUE, qui permet de classer par ordre alphabetique tous les tableaux.

En vous remerciant.

Rechercher des sujets similaires à "mettre ligne tableau"