Affichage valeur cellule

Bonjour le forum

Mon projet arrive à sa fin, mais j'ai 2 problèmes que je n'arrive pas à résoudre, ou alors je n'ai pas fait les actions nécessaires.

Dans la zone du calendrier dans la barre de formule, je souhaite:

1- Afficher uniquement la valeur de la cellule et non les formules.

2- les cellules qui sont de la même couleur et contigüe, je n'arrive pas à afficher le texte en entier, seulement si je fais fusionner les cellules, je sais que cela n'est pas une bonne méthode, ( Lu plusieurs fois sur le forum )

Donc comment faire cela.

Je m'en remets à vos propositions

Merci d'avance

Bonne journée à tous

Bonsoir,

il existe une option sous Excel qui permet d'afficher les formules à la place des résultats dans les cellules, mais l'inverse n'existe pas (ou alors je ne le sais pas !)
Si vous protégez la feuille alors la barre de formule n'affiche plus rien et les cellules affichent le résultat.

Pour avoir le résultat dans la barre de formule et dans la cellule alors il faut que la donnée soit écrite en "dur" donc en passant par VBA pour faire "les calculs" et afficher le résultat dans chaque cellule, et ceci rejoint votre deuxième demande : vu qu'il y a une donnée (une formule ici donc) dans la cellule de droite, le texte trop long de la cellule de gauche ne peut dépasser la bordure de sa cellule.

En l'état ce que vous demandez n'est pas possible.

@ bientôt

LouReeD

Bonsoir,

ci joint votre fichier avec suppression des formules et mise en place des données par code VBA :

Ici le mise à jour est pilotée par un bouton, mais elle pourrait être associée à la modification des données des colonnes E, F et/ou G à savoir date de début, date de fin et nom de la zone d'activité. les couleurs sont automatiques avec vos MFC.

Une fois une zone déterminée par code, elle est fusionnée et on y inscrit le nom de la zone. Si des filtres doivent être fait alors au lieu de fusionner on peut très bien ne rien faire et le nom de la zone commence sur la gauche de la zone et prend la place qu'il faut pour s'afficher, soit on peut mettre en place un centrage sur plusieurs colonnes.

Voilà c'est pour l'idée, car il faut également mettre en place quelque protection pour éviter les erreurs, et éviter "des sorties" du planning. Mais là c'est une autre histoire...

@ bientôt

LouReeD

re le forum

Bonjour LouReed

Merci pour tes précisions.

C'est bien ce que je pensais

Donc seul une écriture en VBA est possible, chose que je ne maitrise pas assez pour l'instant.

Si un membre se propose de le réaliser, je l'en remercie d'avance

Bonne fin de journée à tous

Bonsoir,

je vous l'ai proposé le fichier, mais avec le VBA et les merge cela perturbe les MFC.
Et quitte à mettre du code, suppression des mise en forme sur le planning et on fait tout par code, comme cela les lignes "vertes" ne sont pas obligées de se suivre, le planning s'adapte aux MFC de la colonne A. l'alignement centré se fait sur plusieurs colonnes, donc pas de fusion, mais cet alignement ne vaut que s'il y a plus de 1 cellule concernée par cette zone d'activité. Le fichier :

@ bientôt

LouReeD

Bonjour le Forum

Bonjour LouReeD

Merci de ta proposition.

J'ai regardé rapidement ton code avec tes commentaires

Par contre soit patient, car difficile la semaine prochaine de regarder en profondeur et de valider avec mon fichier total

J'espère que tu suivras encore ce fil

Merci encore

Bonne fin de journée à tous

Bonjour le Forum

Bonjour LouReed

J'ai testé ta proposition et ayant un message d'erreur sur la Ligne

whith Range("ZonePlanning")

Je l'ai modifié et voici le code qui fonctionne comme je le voulais grâce à toi, en plus avec les commentaires Merci

Une partie que j'ai compris, une autre, je vais rechercher sur le forum, ou Net.

Sub MiseaJour()
    Dim R, I As Long, Durée As Integer
    ' on arrête la mise à jour de l'écran
    Application.ScreenUpdating = False
    ' avec la plage du planning
    With Sheets("GMP").Range("ZonePlanning")
        ' on efface toutes les valeurs
        .ClearContents
        ' on efface toutes les couleurs
        .Interior.Color = xlNone
        ' on aligne les cellules à gauche
        .HorizontalAlignment = xlLeft
    End With
    ' ici gestion d'erreur au cas où
    On Error Resume Next
    ' on parcours les lignes d'activité, il faudra mettre les valeurs en variables afin de le rendre adaptable au tableau
    For I = 6 To 24
        ' s'il y a une date de début
        If Cells(I, 5) <> "" Then
            ' on recherche cette date et on récupère sa position dans la plage "calendrier"
            R = Application.Match(Cells(I, 5), Range("Calendrier"), 0)
            ' si on trouve la date
            If R > 0 Then
                ' on récupère la durée de l'activité en faisant une soustraction date de fin, date de début auquel on rajoute 1
                Durée = Cells(I, 6) - Cells(I, 5) + 1
                ' on inscrit la zone d'activité dans la première cellule de la plage
                Cells(I, R + 8).Value = Cells(I, 7) & "    " & Cells(I, 3)
                ' on aligne cette valeur sur la longueur de la plage si plus d'une cellule
                If Durée > 1 Then Cells(I, R + 8).Resize(, Durée).HorizontalAlignment = xlCenterAcrossSelection
                ' on la met en couleur en fonction de la couleur en colonne A
                Cells(I, R + 8).Resize(, Durée).Interior.Color = Cells(I, 1).DisplayFormat.Interior.Color
            End If
        End If
    Next I
End Sub

Par contre

' on parcours les lignes d'activité, il faudra mettre les valeurs en variables afin de le rendre adaptable au tableau

Je ne comprends pas cette phrase.

Encore Merci

Maintenant il me reste à mettre l'ensemble de ce projet de mon PC perso sur mon Pro.

Je suis confiant

Bonne fin de journée à tous

Bonsoir,

pour la phrase : on parcour... Mettre en variable le 6 (mais ce dernier peut être fixe si votre structure de feuille ne change pas, par contre le 24 va dépendre de l'ajout ou suppression de lignes, donc 24 devrait être remplacé par DerLig, variable à laquelle on va attribuer la valeur de la dernière ligne utilisée de votre tableau avec cette instruction : DerLig = Activesheet.Range("A" & Rows.Count).End(xlUp).Row. (ceci permet de trouver la dernière cellule non vide d'une colonne, on par de la dernière cellule de la colonne A où la ligne de cette cellule est égale au nombre de ligne de la feuille : Rows.Count, puis on remonte xlUp afin de trouver la première cellule non vide, qui se trouve être la dernière cellule non vide en partant du haut...

La boucle sera alors : For I=6 To DerLig

@ bientôt

LouReeD

Bonjour à tous

Bonjour LouReed

Je te remercie pour l'aide apporté sur mon projet qui est maintenant fonctionnel.

Bonne journée à toi et au forum

Bonjour,

Merci pour votre retour et remerciement !

Bonne continuation.

@ bientôt

LouReeD

Rechercher des sujets similaires à "affichage valeur"