Insertion de ligne quand détection d'une phrase
Erakmur
-
Erakmur -
Erakmur -
Bonjour,
Je souhaitrai avoir une macro excel qui m'insère 20 lignes quand il détecte le terme "Consigne de sécurité et Environnement:" dans une cellule.
Quelqu'un peut-il m'aider ?
Cordialement
Je souhaitrai avoir une macro excel qui m'insère 20 lignes quand il détecte le terme "Consigne de sécurité et Environnement:" dans une cellule.
Quelqu'un peut-il m'aider ?
Cordialement
3 réponses
-
Bonjour
Option Explicit
Const Col As Byte = 1 'colonne de travail
Const Cle As String = "Consigne de sécurité et Environnement:"
Sub insere_lignes()
Dim Derlig As Integer, Lig As Integer
Application.ScreenUpdating = False
Derlig = Columns(1).Find("*", , , , , xlPrevious).Row
For Lig = Derlig To 1 Step -1
If Cells(Lig, Col) Like "*" & Cle & "*" Then
Rows(Lig + 1 & ":" & Lig + 20).Insert
End If
Next
End Sub
sans précision de ta part, j'ai considéré que "Consigne de sécurité et Environnement:" pouvait être inclus dans d'autres mots
sinon, remplace
Cells(Lig, Col) Like "*" & Cle & "*"
par
Cells(Lig,Col)=Cle
-
Bonjour Michel,
http://cjoint.com/?CLxmT7comDD
Voici le fichier. Je n'ai pas réussi à faire fonctionner la macro. Cela se passe en colonne O. Je souhaiterai que 20 lignes soient insérées quand la phrase est détectée.
Cordialement-
-
-
-
hé oui colonne "O" <===> colonne 15
D'autre part, il faut enregistrer ton classeur en classeur supportant les macros (.xlsm)
le déclenchement de la macro peut se faire par un bouton
Comme tu n'avais pas précisé le nombre de lignes >2000 :-(
j"ai utilisé une méthode plus rapide en bouclant que sur les cellules comportant le texte recherché dans la colonne
Mais je n'ai rien pigé à tes couleurs grises ou jaune: non précisé également, soit au total 3 imprécisions dans ta demande
Option Explicit
Const Col As String * 1 = "O" 'colonne de travail
Const Cle As String = "Consigne de sécurité et Environnement:"
Sub insere_lignes()
Dim Nbre As Integer, Lig As Integer
'fige le défilement de l'écran
Application.ScreenUpdating = False
' nombre de "cle" dans la colonne
Nbre = Application.CountIf(Columns(Col), Cle) ' nombre de "cle" dans la colonne
For Lig = 1 To Nbre
'recherche de la prochaine ligne contenant la clé
Lig = Columns("O").Find(Cle, Cells(Lig, Col), xlValues).Row
'insertion de 20 lignes
Rows(Lig + 1 & ":" & Lig + 20).Insert
Next
End Sub
A l'avenir Merci d'^tre précis dans tes demandes :o) -
Bonjour,
Le code couleur c'est juste pour moi. Tu peux mettre tous en blanc si cela t'arrange. Ta macro fonctionne partiellement, elle s'arrête à la ligne 306. De plus, le décalage des lignes se fait dans le mauvais sens. je souhaitrai un décalage vers le Haut et pas vers le bas. Désolé pour les imprésisions.
Peux tu m'aider ?
Cordialement
-
-
Bonjour à tous,
excusez cette intrusion, mais la curiosité me pique... ;-)
Salut michel
dans :
Const Col As String * 1 = "O" 'colonne de travail
pourquoi le * 1 ?
Je ne connais pas son rôle.
Merci et bonnes fêtes de fin d'années à tous.
eric
PS: ne zappe pas le message précédent