Insertion de lignes dans un tableau en tenant compte des semaines

Ok. désolé mais je n'avais plus pensé à ces protections et de mon coté je n'avais pas protégé la feuille lors des essais.
Les protections avec excel et VBA c'est toujours compliqué. On risque toujours d'avoir un bug ou l'autre lorsque plusieurs interagissent entre elles.

En effet, mais rien ne vous échappe !

Peut-on intégrer la macro dans le codage pour chaque insertion de ligne ou modification ?

Peut-on intégrer la macro dans le codage pour chaque insertion de ligne ou modification ?

Si vous voulez vous pouvez ajouter ceci juste avant le END SUB de la macro TRIER

Call Renumerotation

Faites un test

Rem : il faut bien savoir que si vous utilisez cela, le code que vous ai proposé va balayer toutes les lignes (avec X ou sans X). Si votre tableau en contient beaucoup (comme vous m'aviez écrit si je me rappelle), cela peut ralentir l'exécution.
Si cela devient gênant dans le futur dites-moi, il faudra adapter le code.

Test effectué et c'est ce qu'il faut !
Les utilisateurs doivent pouvoir retrouver facilement leurs lignes lorsqu'ils auront le besoin de les modifier même si je n'ai pas encore donner les infos entre Q et V.

Sauf erreur de ma part, je pense que vous m'avez parlé qu'il ne fallait pas supprimer de ligne sous peine de ne plus avoir la renumérotation mais j'ai effectuer un essai et celle-ci fonctionne toujours ! ???

Sauf erreur de ma part, je pense que vous m'avez parlé qu'il ne fallait pas supprimer de ligne sous peine de ne plus avoir la renumérotation mais j'ai effectuer un essai et celle-ci fonctionne toujours !

Non c'était juste une question que je vous avais posée en pensant à un souci mais là non, avec la suppression de ligne cela fonctionnera toujours

Si vous avez plus de 256 lignes avec xxx ( ce qui serait beaucoup tout de même...) , pensez à remplacer Byte par Integer dans les déclarations de variables byte

J'ai tout de même regardé pour le code pour le rendre plus court et éviter d'utiliser une boucle sur toutes les lignes. Le voici :

Sub renumerotation2()
Dim c As Range
Dim prem
Dim newnum As Byte, oldnum As Byte

With Feuil1
    .Unprotect
    With .Range("C5:C" & Range("C" & Rows.Count).End(xlUp).Row)

        Set c = .Find("*X*", LookIn:=xlValues)
        If Not c Is Nothing Then
            prem = c.Address
            Do
                With Feuil1
                    .Range("C" & c.Row) = Replace(.Range("C" & c.Row), "-", "_")
                    On Error Resume Next
                    oldnum = Right(Range("C" & c.Row).Value, Len(Range("C" & c.Row).Value) - InStrRev(Range("C" & c.Row).Value, "_")) 'ancien numero
                    On Error GoTo 0
                    newnum = newnum + 1 'nouveau numero
                    If IsNumeric(oldnum) And oldnum <> 0 Then 'verifier si oldnum est numerique
                        .Range("C" & c.Row) = Replace(.Range("C" & c.Row).Value, oldnum, newnum)
                    Else: .Range("C" & c.Row) = .Range("C" & c.Row) & "-" & newnum
                    End If
                    oldnum = 0
                End With
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And prem <> c.Address
        End If
    End With
    .Protect
End With
End Sub

Si un jour vous avez beaucoup de lignes dans votre tableau (je parle de centaines bien entendu), cela pourrait être intéressant et serait plus rapide. Mais avec le code actuel cela fonctionne aussi bien.

J'ai intégré votre modif. en laissant en entête : Option Compare Text et en retirant le 2 après Sub renumerotation

Savez-vous si cela serait problématique de le mettre en fichier partagé ou vaut-il mieux que celui-ci soit utiliser seulement par un seul utilisateur à la fois ?

Bon, ben.... j'ai un tableau qui me paraît plus que pas mal et cela grâce à vous !

Chapeau bas cher Dan et un grand MERCI

Je vais le soumettre aux utilisateurs en début d'année.

Savez-vous si cela serait problématique de le mettre en fichier partagé ou vaut-il mieux que celui-ci soit utiliser seulement par un seul utilisateur à la foi

Le souci du partagé, c'est que si quelqu'un l'ouvre sans le fermer. Mais excel vous dire qu'il est ouvert
Pour le partage je pense qu'il faut passer par Onedrive.
De mon coté à l'époque où je travaillais encore j'avais mis un fichier sur le réseau entreprise et mis un code qui fermait le fichier sans enregistrer si l'utilisateur le laissait ouvert trop longtemps.
Mais à vrai dire je ne suis pas fan du tout d'utiliser des fonctions de Timer ou des cellules qui clignote avec Excel.
le mieux est encore d'aller trouver l'utilisateur du fichier

A voir quels sont les soucis que vous rencontreriez pour ajouter ce genre de code.

Chapeau bas cher Dan et un grand MERCI

Avec plaisir et merci pour le compliment

Je pense également le mettre sur le réseau et d'aller voir l'utilisateur.

Par contre, savez-vous pourquoi, nous avons toujours le même Nom d'utilisateur d'indiqué lorsque nous ouvrons un fichier en lecture seul alors que ce n'est pas forcément cet utilisateur qui est dessus ?

Nous rencontrons ce genre de problème sur d'autres fichiers excel

Par contre, savez-vous pourquoi, nous avons toujours le même Nom d'utilisateur d'indiqué lorsque nous ouvrons un fichier en lecture seul alors que ce n'est pas forcément cet utilisateur qui est dessus ?

Vous voyez cela au travers d'un message ?
Un message qui dit que le fichier est verrouillé par un autre utilisateur ?

Vous voyez cela au travers d'un message ?

Un message qui dit que le fichier est verrouillé par un autre utilisateur ?

C'est ça !

Bonjour

J'ai regardé un peu le web à ce sujet. Plutôt que de vous écrire les résultats de mes recherches, regardez ce lien qui devrait vous donner une explication --> http://www.infonovice.fr/excel-mauvais-nom-affiche-lorsquun-fichier-est-en-cours-dutilisation/

Merci pour l'info,

Je vais y jeter un œil.

Bonjour Dan,

Un nouveau souci est apparu lors d'une phase test.
Pour la création de ce fichier, nous n'avons pas intégré de mdp pour la protection de la feuille.
Désormais, je suis obligé d'en intégrer un.
J'ai fais le test d'essayer de supprimer une information se trouvant dans une des cellules à partir de la colonne Q et j'ai un message m'indiquant "ôter la protection de la feuille".
Si je tape mon mdp, tout est ok
Par contre, si je fais "annuler" ou "ok", j'ai ce message qui apparaît.

capture

Si je clique sur "FIN", ma cellule est tout de même supprimée
Si je clique sur "Débogage", voilà ce qui est surligné :

capture 1

Une solution pour contrer ce petit souci ?
Merci Dan

PS : J'ai également remarqué qu'en intégrant un mdp, les personnes ne peuvent pas intégrer ou modifier de ligne

Bonjour

J'ai fais le test d'essayer de supprimer une information se trouvant dans une des cellules à partir de la colonne Q et j'ai un message m'indiquant "ôter la protection de la feuille". Si je tape mon mdp, tout est ok

En principe vous ne devriez pas avoir le message oter la protection
Vérifiez que vous avez bien un Unprotect et un protect dans le code Ajout couleur

Dans tous les tests le mot de passe est à blanc donc si vous avez mis un vrai mot de passe, on doit corriger partout dans les codes

Est-ce bien cela ? Si oui, est-ce que vous protégez votre projet VBA par mot de passe ou pas ?

Si je me trompe pas, dans le code ou j'ai Call Ajout_couleur, j'ai un .Protect en dessous

Ce qui est curieux, c'est que même en mettant à blanc le mdp, si je veux supprimer une cellule alors que la feuille est protection, il me supprime la cellule est retire la protection.
En jetant un œil dans le format de cellule, la case verrouillée était noircie et non cochée.
Après avoir sélectionné et coché la case verrouillée sur l'ensemble des cellules déjà créées entre Q et W, je m'aperçois qu'a chaque nouvelle ligne créée, il ne recopie pas ce verrouillage de ces cellules contrairement aux autres cellules de cette même ligne

Je souhaiterai uniquement avoir un code pour la protection de la feuille, rien d'autre.

Dans le code Renumérotation vous avez bien le Unprotect et protect mentionnés ?

Oui

Après avoir sélectionné et coché la case verrouillée sur l'ensemble des cellules déjà créées entre Q et W, je m'aperçois qu'a chaque nouvelle ligne créée, il ne recopie pas ce verrouillage de ces cellules contrairement aux autres cellules de cette même ligne

Là il y a modification à faire effectivement.
Soit par code ou alors vous sélectionnez les cellules Q à W jusque la ligne 10000 par exemple et vous allez dans format cellule pour cocher la case verrouillée. De cette sorte la feuille sera préparée

Par contre si vous protégez ces cellules, on va devoir prévoir de déprotéger la feuille lorsque vous allez faire des modifications dans ces colonnes Q à W (sauf pour la T qui contient une formule. Et là ce n'est pas simple...

J'ai protégé les cellules de Q à W en cochant la case de la première ligne à 10000.
J'ai effectué une insertion de ligne et un test en intégrant à nouveau un code de protection de la feuille afin de voir si j'avais toujours ce problème et ce n'est plus le cas.

Pour effectuer la modification de ces cellules, étant donné que je suis le seul à avoir les droits, je n'ai juste qu'à déprotéger la feuille en tapant mon code et puis c'est tout, non ?

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