Erreur formules inserer lignes et nom colonnes

11duerp-avis.zip (623.49 Ko)

Bonjour,

J'ai un soucis avec ce fichier excel :

- dans mes onglets SIE, SEAD je n'arrive pas à changer le nom de la colonne B12... elle est ,nommé collone1 mais je souhaite qu'elle soit intitulée Professionnels comme pour les autres onglets...

- dans mon onglet synthèse pour le SEAD, SIE et SSPJ les cases de ma catégorie prof sont vides...je ne comprends pas pourquoi alors que dans les onglets correspondants ces données sont bien remplies...

- et dans l'ensemble de mes onglets lorsque ma 1ere cellule de ma dernière ligne est remplie je souhaite qu'il est automatiquement une nouvelle ligne de créer et que la mise en forme et les formules se dupliquent...jusqu'à récemment cela marché mais plus maintenant...

Je ne suis pas une génie d'excel...je bidouille mais je pense que mes VBA vont un peu dans tous les sens !!

merci de votre aide par avance !!

Bonjour, ouvrez votre fichier en maintenant la touche "Maj" enfoncée pour bloquer le lancement des Macros.

(événement lors de la saisie dans la feuille)

- Modifiez votre Titre colonne B puis fermer excel en enregistrant les modifications.

Lors de la prochaine ouverture les macros seront réactivées et les intitulés changés.

Bonjour

Pour les titres il suffit d'éditer la cellule et de remplacer le contenu par Professionnels

Je ne vois pas où est le problème (effectivement il faut désactiver les macros avec le code actuel comme indiqué par XmenPL)

Pour la synthèse attention : Catégories Professionnels et Catégories Professionnelles selon les onglets

Pour le VBA : quand on manipule des tableaux structurés on se sert du VBA prévu pour...

Remplace ton code par

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim ValSaisie As Variant
  ' Choix multiple en colonne Professionnels
    If Intersect(Target, ListObjects(1).DataBodyRange) Is Nothing Then Exit Sub
    With ListObjects(1)
        Application.EnableEvents = False

        If Not Intersect(Target, .ListColumns("Professionnels").DataBodyRange) Is Nothing And Target.Count = 1 Then

            ValSaisie = Target
            If ValSaisie = "" Then
              Target.ClearContents
              GoTo FinProc
            End If

            Application.Undo
            p = InStr(Target, ValSaisie)
            If p > 0 Then
                Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
                If Right(Target, 1) = Chr(10) Then
                  Target = Left(Target, Len(Target) - 1)
                End If
            Else
                If Target = "" Then
                  Target = ValSaisie
                Else
                  Target = Target & Chr(10) & ValSaisie
                End If
            End If

        End If

    If Target.Row = .Range.Row + .ListRows.Count And .DataBodyRange(Cells(.ListRows.Count), 1) <> "" Then .ListRows.Add

  End With

FinProc:
    Application.EnableEvents = True

End Sub

Et supprime tous les noms Personnel_services_généraux

Un grand merci !

Juste : si jamais je veux plutôt que ma ligne apparaisse (format tableau) lorsque je remplie non pas la cellule de dessus mais la première cellule de ma nouvelle ligne ? Je fais quoi comme code?

Et dernière question ... avec ta proposition, les formules de mes colonnes J, O, P ne se conservent pas. Comment puis je faire ?

Merci merci merci !!!

Et pourquoi me dis tu supprime tous les noms Personnel_services_généraux ?

Merci encore :-)

RE

La ligne s'ajoute quant tu valides la valeur de la première colonne et que c'est la dernière ligne du tableau

Le problème touche 3 onglets : La jaunie, Siège et SPSJ

Supprimes les dernières lignes vides sous le tableau qui ont apparemment un problème sur ces onglets.

Si les formules sont correctes cela fonctionne et c'est le cas dans les autres onglets

EDIT pour les noms : problème de copie coller : c'est PremiereCelluleApresTableau

Re, re,

En fait je voudrais que cela n'ajoute pas une nouvelle ligne mais que lorsque je complete la première cellule de la colonne A le format tableau apparaisse sur cette ligne (les lignes du tableau).

RE

Ce n'est pas le mode normal d'utilisation des tableaux structurés.

Les ListObjects obéissent à certaines règles : il est préférable de les respecter pour ne pas avoir de problème.

Tu configures une ligne qui ne fait pas partie du tableau : il risque d'y avoir conflit entre paramètres de la ligne et paramètres du tableau...

De même tes MFC doivent s'appliquer au tableau pas à une plage et tes formules devraient être de type tableau.

Oui je comprends bien. Mais apparemment avec ceci ca marchait...mais je ne sais aps comment ou le mettre... et je n'arrive toujours pas à ce que les colonnes J, o, P gardent leurs conditionnalités...

' teste si la cellule juste au dessus est remplie

If Range("premiereCelluleApresTableau").Offset(-1) <> "" Then

' ajoute une ligne - la ligne s'insère au dessus

Application.EnableEvents = False

Range("premiereCelluleApresTableau").EntireRow.Insert xlShiftDown

Application.EnableEvents = True

End If

If Not Application.Intersect(Target, ActiveSheet.ListObjects(1).ListColumns(1).DataBodyRange) Is Nothing Then Target.Offset(, 1) = ""

End Sub

RE

Avec mon code et en supprimant toutes les lignes sous les tableaux structurés de façon à faire le ménage cela fonctionne...

Regarde tes MFC il y a des tonnes en trop

Je n'arrive toujours pas a garder les conditions fixées pour que les couleurs apparaisent dans les 3 colonnes...

Ca ne marche pas de mon côté...je suis obligé "d'étirer" la cellule vers le bas...

et je reviens toujours à mon histoire de ligne, comment supprimier l'insertion automatique d'une ligne au dessous car j'ai du coup des lignes vierge dans ma synthèse...

Après promis j'arrête!

RE

Il y a effectivement un phénomène bizarre : les MFC en J et P ne se déclenchent pas du fait du code qui semble interrompre un calcul

Je pense avoir trouvé une solution.

Je n'ai jamais rencontré ce problème car un tableau ne doit jamais contenir de ligne vide.
De ce fait on conseille d'éviter la liste déroulante en 1ère colonne d'un tableau qui est ce qui t'oblige à avoir une ligne d'avance.
lI faudrait voir si tu peux suivre ce principe...

Je vais aussi regarder de mon côté si on peut trouver une autre solution.

En l'état, pour la synthèse il suffit de filtrer les null de la colonne Catégories Professionnels dans la requête.

Teste le fichier ci-joint

19duerp-avis2b.zip (574.19 Ko)

Ce qui étrange c'est qu'avant cela fonctionnait... la mise en forme de ma ligne que j'étais entrain de compléter se créait dès que je complétais la colonne A (sans que ca ne rajoute une nouvelle ligne dessous) (et si on enlevait la partie du code sur le rajout automatique de ligne?

et les conditionnalités fonctionnaient en colonnes J, O, P...

Voici le doc revu avec ton code et certaines erreurs corrigées.

Merci de ta patience !

5duerp-test.zip (629.66 Ko)

et voici mon tout premier fichier ou les choses fonctionnaient ...

5duerp-ok.zip (564.29 Ko)

RE

Ce qui étrange c'est qu'avant cela fonctionnait...

As-tu lu et compris mon post de Aujourd'hui à 18:32 ?

J'expliquais la raison et aussi posté un fichier à tester en état de fonctionnement mais à priori tu ne l'as pas testé...

J'ai combiné partiellement ton approche et la mienne et mis un seul code dans le module du classeur

15duerp-test3.zip (591.98 Ko)

Merci, en effet pour le fichier duerp-avis2b cela à l'air de fonctionner pour les colonnes J, O, P

Qu'as tu modifie stp?

Pour l'autre fichier que tu viens de m'envoyer ca ne fonctionne pas...

RE

Si il fonctionne.

Seul l'onglet MECS_Les_Amarres a un problème car les colonnes concernées ne sont pas homogènes du haut en bas.
J'ai corrigé et maintenant il fonctionne aussi.

J'ai néanmoins ajouté un ligne au code pour rester sur la ligne où on rempli la 1ère colonne car la cellule active était en dessous

25duerp-test3b.zip (582.83 Ko)

C'est très étrange. Quand j'utilise ton fichier que tu viens de m'envoyer, il faut que je fasse Tab dans la dernière cellule de la dernière ligne afin de rajouter une ligne et pour que les conditionnalités des colonnes J,O,P, fonctionnent il faut que je complète une nouvelle ligne...

C'est à s'arracher les cheveux tout ça !! :-)

RE

Tab depuis la dernière cellule est le mode normal pour ajouter une ligne...

As-tu bien activé le code VBA ? Testé sans problème sur 2010 et sur 365.

Il suffit de dérouler la liste de la 1ère colonne, Catégories Professionnelles, et de choisir un élément pour que la ligne s'ajoute au tableau en cours.

Tu as quelle version Excel ?

Rechercher des sujets similaires à "erreur formules inserer lignes nom colonnes"