Insertion de lignes dans un tableau en tenant compte des semaines

Peut-on changer la colonne de la combobox car c'est la C (n° DEM) que nous avons besoin et non la E.

Oui. Changez la lettre E en C dans les deux codes suivants :
- Private Sub CommandButton3_Click()
- Private Sub ComboBox1_Change()


1er pt : Sinon, j'ai fais un essai, il duplique la ligne en intégrant le changement mais ne supprime pas l'ancienne ligne.

Oui effectivement c'est dû au fait que l'orhtographe du bouton "Modifier la ligne" est différent de ce qui est mentionné dans le code Private Sub CommandButton1_Click(). Pour vous évitez ce problème, ajoutez simplement "Option Compare Text" juste en dessous de 'Option Explicit"

Refaites un test.

Pt2 et Pt 3 : Il faut refaire pas mal de codes. Je regarde entre-temps


Edit : pour le points Pt2 et 3, j'ai dû modifier quelques lignes dans le code Private Sub controle() et Private Sub CommandButton3_Click(). Le code Private Sub CommandButton1_Click() est revu complètement
Je peux vous faire le détail mais le plus simple est de remplacer le tout par les codes dans le fichier joint

11codes-usf-2.txt (3.83 Ko)

Bonjour,

Ha.... c'est beaucoup mieux.

Forcément, après quelques tests, j'ai des remarques

Est-il possible d'avoir un tri par ordre croissant dans la combobox pour faciliter la recherche ?
Actuellement dans la combobox les n° des DEM sont triés par ordre des semaines

Est-il également possible d'effectuer la mise à jour automatique comme pour le bouton "mise à jour" (Module 2) à chaque fois qu'une modification dans l'USF est effectuée (bouton modification uniquement)

Je ne comprends pas pour le format des dates dans les colonnes N et O.
J'ai mis toutes les cellules (N4:O4000) sous le format personnalisé jj-mmm afin d'avoir des dates sous le format 12-déc, mais j'ai encore des 12-12 ou 12/12/2023 qui apparaissent

Merci

Bonjour

Est-il également possible d'effectuer la mise à jour automatique comme pour le bouton "mise à jour" (Module 2) à chaque fois qu'une modification dans l'USF est effectuée (bouton modification uniquement)

Oui. Allez dans le code Private Sub CommandButton1_Click et à la fin juste en dessous de la ligne Call Mise_en_forme, rajoutez cette ligne

If CommandButton1.Caption = "Modifier la ligne" Then Call planning 'cas modification ligne

Elle va y être deux fois dans le code . J'essayerai de voir si on peut faire autrement mais cela fonctionnera déjà tel quel


Je ne comprends pas pour le format des dates dans les colonnes N et O.

Allez dans le code Private Sub CommandButton1_Click, remplacez les deux lignes ci-dessous

.Cells(lig, 14) = Format(BoxDateArrivéePrévisionnel.Text, "d-mmm")
.Cells(lig, 15) = Format(BoxDélaiSouhaité.Text, "d-mmm")

Faites un test

Tout fonctionne !

Peut-on intégrer "d-mmm" pour les colonnes 17 et 22 (même problème)

Merci

Peut-on intégrer "d-mmm" pour les colonnes 17 et 22 (même problème)

Dans le code Private Sub CommandButton1_Click(), juste en dessous de .Cells(lig, 15)= ....... rajoutez ces deux lignes

.Cells(lig, 17).NumberFormat = "d-mmm"
.Cells(lig, 22).NumberFormat = "d-mmm"

Parfait,

1er pt : Par contre la modification ne fonctionne pas dès que j'indique une info dans l'une des colonnes (Q à V)

Il me fait apparaître uniquement dans la combobox les n° des lignes dont je n'ai aucune information dans les colonnes indiquées ci-dessus.

2ème : Ordre croissant dans la combobox

3ème pt : J'ai une demande qui m'a été faite entre 2.
L'incrémentation des n° de la colonne C est effectué par un autre classeur.
Année - Mois - N° d'incrémentation (exemple : 2024_12_586 ou 2024-12-586).
Ce qui est surligné est ce qui est repris.
Est-il possible de changer le code pour remplacer la prise des 3 derniers chiffres et d'indiquer qu'il reprenne les chiffres qui suivre le dernier "_" ou '-" (tiré du huit ou tiré du 6) car il est probablement possible que nous passons les 3 chiffres

Merci encore

Point 1 : je n'ai pas compris. Que voulez-vous dire par modification qui ne fonctionne pas ?
La combo se charge des demandes qui ne sont pas terminée ou annulée (suivant indication en colonne A) en effectuant le tri demandé
Le code ne s'occupe pas des colonnes Q et V

Point 2 : Ok donc ?

Point 3 :

car il est probablement possible que nous passons les 3 chiffres

Je n'ai pas trop compris ce que vous voulez dire
Actuellement le code reprend 3 chiffres en tenant compte du dernier "_"

Point 1 :
Oups, vous avez raison, désole.
J'ai oublié que les demandes terminées et annulées n'apparaissaient plus.

Point 2 :
S'il est possible d'avoir la liste par ordre croissant dans la combobox afin de balayer toute la liste

Point 3 :
En effet, nous reprenons les 3 derniers chiffres.
Mais il est probable que nous ayons des demandes à 4 chiffres.

Point 2 : S'il est possible d'avoir la liste par ordre croissant dans la combobox afin de balayer toute la liste

- Dans l'USF, allez dans le code Private Sub CommandButton3_Click()
- Ajoutez cette ligne juste en dessous de NEXT CEL

.List = ListSort(.List) 'appel fonction ListSort pour trier la combobox1

- Mettez le code ci-dessous dans 1 des deux modules (pour ma part je l'ai mis dans le module 1)

Function ListSort(liste) 'trier valeurs dans combobox
Dim prem As Integer, dern As Integer
Dim i As Integer, j As Integer
Dim temp

prem = LBound(liste)
dern = UBound(liste)
For i = prem To dern - 1
    For j = i + 1 To dern
        If liste(i, 0) > liste(j, 0) Then
            temp = liste(j, 0)
            liste(j, 0) = liste(i, 0)
            liste(i, 0) = temp
        End If
    Next j
Next i
ListSort = liste
End Function

Point 3 : En effet, nous reprenons les 3 derniers chiffres. Mais il est probable que nous ayons des demandes à 4 chiffres.

Pour l'aspect de 3 ou 4 chiffres le code est bon actuellement.
Le souci auquel j'ai prêté attention hier dans votre post est celui du tiret ou souligné. Car s'il se peut que vous ayez un des deux, il faut adapter le code. Là je dois surtout savoir ce point.

Point 2 : Parfait

Point 3 : Je préfère intégrer les 2 cas de figures (- ou _)
Et en effet, même si j'indique 4 chiffres, il les intègre

Point 3 : Je préfère intégrer les 2 cas de figures (- ou _)

Pour faire au plus simple :
- Click droite sur l'onglet de la feuille Provio et choisir visualiser le code
- dans le code Private Sub Worksheet_Change, ajoutez cette ligne juste en dessous ou juste avant la ligne coul = Range("B".....

Range("C" & Target.Row) = Replace(Range("C" & Target.Row), "-", "_")'changer tiret par souligne

Pour l'explication, cette ligne remplacera le tiret par les soulignés. Du coup vous aurez toujours des soulignés entre vos chiffres
Si vous avez déjà un souligné le code passera au travers

Cordialement

Désolé mais aucun changement

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim coul
Dim ref As String, refdem As String, refpart As String, refdate As String
Dim i As Integer

If Target.Count > 1 Or Target.Row <= 4 Then Exit Sub

If Not Intersect(Target, Range("Q" & Target.Row & ":V" & Target.Row)) Is Nothing Then

    With Range(Cells(Target.Row, 23), Cells(Target.Row, 500))
        .ClearContents
        .Interior.Color = xlNone
        .UnMerge
    End With

    If WorksheetFunction.CountA(Range("Q" & Target.Row & ":V" & Target.Row)) = 6 Then

        coul = Range("B" & Target.Row).Interior.Color
        Range("C" & Target.Row) = Replace(Range("C" & Target.Row), "-", "_") 'changer tiret par souligne
        refdem = Right(Range("C" & Target.Row).Value, Len(Range("C" & Target.Row).Value) - InStrRev(Range("C" & Target.Row).Value, "_")) 'ref essai
        refpart = Range("F" & Target.Row).Value 'ref piece
        refdate = Format(Range("V" & Target.Row), "dd/mm") 'refdate

        ref = refdem & " - " & refpart & " - " & refdate

        For i = 1 To Range("T" & Target.Row).Value / 0.5
            Cells(Target.Row, i + 22).Interior.Color = coul
        Next i

        Cells(Target.Row, 23).Value = ref
        With Range(Cells(Target.Row, 23), Cells(Target.Row, i + 21))
            .Merge
            .HorizontalAlignment = xlCenter
        End With
    End If
End If
End Sub

Désolé mais aucun changement

Comment çà ?

Il n'y avait pas besoin de mettre le code qui d'ailleurs ne fonctionne pas avec le bouton mais au changement entre Q et T
Mettez ceci en colonne C 2024-1-987 et changez en colonne R vous verrez que la cellule a changé en 2024_1_987

Par contre, il aussi ajouter la ligne dans la macro Sub planning (pour le bouton Mise à jour). Cela je ne vous l'avais pas écrit.... mille excuses

Bonjour Dan,

Test effectué, OK !

Et dans la macro Sub planning , a quel niveau ?

Bonjour

Et dans la macro Sub planning , a quel niveau ?

Au même niveau, mais en remplaçant les deux instructions Target.row par i

Edit : Le code placé dans la feuille doit aussi être modifié notamment dû au tiret ou non dans le num de la demande. A présent que l'on arrive près du but, on pourrait simplifier les codes afin d'avoir une meilleur vision. Si vous voulez je vous donne tous les changements. Votre avis ?

Bonjour Dan,

Je reprends le sujet après quelques jours d'absences.

Avant d'évoquer le sujet de la simplification du codage, je vous annoncer que j'ai présenté ce petit fichier et celui-ci plaît beaucoup par sa simplicité d'utilisation.
J'ai tout de même reçu quelques retours qui sont loin d'être inintéressants.

Point 1
: Est-il possible en colonne U, d'automatiser l'apparition de : par exemple S05 si je note uniquement 5 et S33 si je note 33 ?

Point 2 : Comme vous le savez, pour visualiser la barre de couleur avec les informations importantes à partir de la colonne W. Barre qui sera copier coller pour être intégrée dans la feuille "calendrier", je dois changer la couleur de fond des cellules semaines, colonne B. Est-il possible d'automatiser la couleur en fonction de la semaine en faisant une recherche dans cette colonne est voir s'il existe déjà une couleur dans la semaine concernée. Je fais pas si c'est clair ?!
Exemple : S'il existe un S22 en colonne B avec un fond de couleur différent que blanc ou aucun remplissage ou jaune standard (voir point 3) alors mettre tous les S22 de ma même couleur. Couleur que j'aurai choisi au préalable.

Point 3 : Pour donner une visibilité direct des modifications apportés sur n'importe quelles lignes, est-il possible de mettre en évidence automatiquement les cellules modifiées ? Exemple : mettre la couleur de fond de la cellule en jaune (couleur standard).
Et pour que les personnes puissent voir que j'ai bien pris en considération ce changement avoir une liste déroulante avec l'ensemble des n° des DEM pour ensuite la sélectionner et valider les modifications. Cela rebasculera les cellules sans remplissage hormis la cellule des semaines (voir point 2).

Point 4 : Ce fichier devait être en fichier partager via "Teams" mais celui-ci ne gère pas les macros. Auriez-vous une idée de partage de ce genre de fichier sachant que nous souhaiterions qu'il soit partagé en simultané ?

Point 5 : Possible de renvoyer automatiquement à la ligne les informations notées en colonne P même si le fichier est protégé ?

Beaucoup de demande ... mais votre fichier plaît beaucoup

Bonjour,

Pour répondre à vos points ci-avant :

Point 1 : oui c'est une simple modification à faire

Point 2
: Possible oui mais à fin de rester simpple, puisque on ajoute via une userform, La liste des couleurs serait celle trouvée par excel en fonction du numéro de semaine. Donc numéro de semaine = numéro de couleur par défaut excel. exemple : semaine 1 ce serait le rouge, semaine 2 vert, semaine 3 bleu,...

Point 3
: Il y a deux sujets là si je ne me trompe ... et à priori cela me parait beaucoup plus complexe
Vous parlez d'une modification via l'userform je suppose. Si oui, de base pour éviter de changer les couleurs de la ligne entre les colonnes B et P, je pencherais plutôt pour mettre une couleur rouge en colonne A ou dans la colonne Q. Le tout est de comprendre le fonctionnement.

Je n'ai pas compris au sujet des listes déroulantes
Pour ces points un exemple serait le bienvenu

Point 4
: mettre votre fichier dans répertoire commun à tous mais il ne faut pas que quelqu'un le laisse ouvert une fois terminé son action ou alors placer le fichier sur Onedrive.

Point 5
: de mémoire excel fait cela automatiquement une fois les lignes les 5 premières lignes complétées (donc P4 à P8), sélectionnez P4 à P8 allez dans Format cellule --> Alignement et cochez la case "Retour automatique"
Si vous voulez par code, allez dans le code Mise_en_forme et rajoutez cette ligne à la fin du code juste au dessus du dernier END WITH

.Range("P4:P" & dlg).WrapText = True

Bonjour,

Point 1 : Je suis preneur de la modif.

Point 2 : Cela m'intéresse. Par contre, je souhaiterai travailler sur pas plus de 10 couleurs et non criardes
J'ai effectué quelques test et voici le souhait :
S01 - S11 - S21 - S31 - S41 - S51 = #9BE5FF
S02 - S12 - S22 - S32 - S42 - S52 = #E5B6B5
S03 - S13 - S23 - S33 - S43 - S53 = #C6E0B4
S04 - S14 - S24 - S34 - S44 = #FFE699
S05 - S15 - S25 - S35 - S45 = #9BC2E6
S06 - S16 - S26 - S36 - S46 = #D5D5AD
S07 - S17 - S27 - S37 - S47 = #B1A9D9
S08 - S18 - S28 - S38 - S48 = #DFC631
S09 - S19 - S29 - S39 - S49 = #ADE5D0
S10 - S20 - S30 - S40 - S50 = #EE8C8A

Point 3 : En effet, je parle des modifications qui seront faites via USF. Mettre en évidence par la couleur #FFFF00 les cellules modifiées
Je comprends votre proposition mais dans le cas de multiple modifications, si je n'ai qu'une cellule en couleur (exemple en Q) je ne serai pas forcément ce qui sera changé exactement
Pour que les personnes puissent être au courant que j'ai bien pris en considération les modifications, il faudrait que je puisse approuver les modif. de la ligne concernée. J'avais pensé à une liste qui fait apparaître toutes les DEM qui ont été modifiées dans l'USF et que je puisse sélectionner et validé faisant disparaître les cellules de couleur jaune pour les remettre à la couleur de la semaine. De plus la liste se purgerai automatiquement.
En espérant que cela soit clair pour vous.

Point 4 : J'avais déjà partagé avec mon One Drive mais le lien internet ne permet pas de gérer les macros.
Je vais effectuer le test en accordant l'accès à mon dossier mais je dois attendre la validation de mon administrateur

Point 5 : J'ai intégré le codage

Merci pour vos retours

Bonjour

Ok pour le point 1 mais maintenant en fonction de ce que vous écrivez point 2 et 3 cela risque de changer ce que je vous avais préparé

Point 2 : c'est presque revoir tout ce qui a été effectué. En tout cas cela va complexifier les codes. Dommage que je ne savais pas cela au départ.
Là déjà imaginez que vous avez 10 couleurs différentes à appliquer sur une base de données de 800 lignes sachant que vous pouvez ajouter une ligne mais surtout de modifier n'importe qu'elle donnée en commençant par la semaine. Qui plus est vous voulez rajoutez une couleur dans les cellules modifiées ...

Point 3 vous me parlez de la colonne Q mais si j'ai bien compris les colonnes Q à V sont sous votre contrôle. de ma compréhension ce n'était pas ces colonnes qui devaient changer de couleur mais celles entre B et P.
Puis une fois que vous aurez accepté la modification il va falloir enlever la couleur dans la cellule pour la remettre comme avant la modif non ?
Ai-je mal compris ?

En gros il faut se poser pour réfléchir

Dan,

Ces nouvelles demandes font objet des retours reçus par les utilisateurs. Et il est vrai qu'ils ont pas tort sur le principe.

Point 3 : C'est effectivement ça !

Pour êtes honnête, vous connaissez tellement bien votre sujet ...

Cela vous semble faisable ?

Rechercher des sujets similaires à "insertion lignes tableau tenant compte semaines"