Réchercher une valeur et insérer une ligne au dessus

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ThomasEtMathilde

XLDnaute Nouveau
Hello à tous

J'ai un fichier de 30000 lignes. Je souhaiterai pouvoir trouver une procédure automatique (macro ?) qui insère dans mon fichier une ligne vierge au dessus de la ligne où il trouve la valeur que je cherche.
Exemple : excel doit chercher dans la colonne C, la valeur "Field Name". S'il la trouve en C4, il insère une ligne vierge en ligne.

C'est une histoire de insertrow ou un truc comme ça non ?

J'y connais tellement rien, suis désolée !

Laurence
 
Re : Réchercher une valeur et insérer une ligne au dessus

Bonjour,

Une piste avec les codes suivants à copier dans un module standard
ATTENTION : faites l'essai sur une copie de votre classeur.
Code:
Sub PremiereOccurence()
Dim R As Range
Set R = ActiveSheet.[c1:c65536].Find(What:="Field Name", After:=[c65536], _
    LookAt:=xlWhole, MatchCase:=True)
If Not R Is Nothing Then Rows(R.Row).Insert
End Sub

Sub ToutesOccurences()
Dim R As Range
Dim Premier$
With ActiveSheet.[c1:c65536]
  Set R = .Find(What:="Field Name", After:=[c65536], _
    LookAt:=xlWhole, MatchCase:=True)
  If Not R Is Nothing Then
    Premier$ = R.Offset(1, 0).Address
    Do
      Rows(R.Row).Insert
      Set R = .FindNext(R)
    Loop While Not R Is Nothing And R.Address <> Premier$
  End If
End With
End Sub
1) la Sub PremiereOccurence insère une ligne vierge au-dessus de la 1ère occurence trouvée.
2) la Sub ToutesOccurences insère une ligne vierge au-dessus de toutes les occurences trouvées.
les 2 macros cherchent le mot ENTIER et sont sensibles à la casse (distinction des minuscules et des majuscules).

Cordialement.

PMO
Patrick Morange
 
Re : Réchercher une valeur et insérer une ligne au dessus

Bonjour,

Une piste avec les codes suivants à copier dans un module standard
ATTENTION : faites l'essai sur une copie de votre classeur.
Code:
Sub PremiereOccurence()
Dim R As Range
Set R = ActiveSheet.[c1:c65536].Find(What:="Field Name", After:=[c65536], _
    LookAt:=xlWhole, MatchCase:=True)
If Not R Is Nothing Then Rows(R.Row).Insert
End Sub

Sub ToutesOccurences()
Dim R As Range
Dim Premier$
With ActiveSheet.[c1:c65536]
  Set R = .Find(What:="Field Name", After:=[c65536], _
    LookAt:=xlWhole, MatchCase:=True)
  If Not R Is Nothing Then
    Premier$ = R.Offset(1, 0).Address
    Do
      Rows(R.Row).Insert
      Set R = .FindNext(R)
    Loop While Not R Is Nothing And R.Address <> Premier$
  End If
End With
End Sub
1) la Sub PremiereOccurence insère une ligne vierge au-dessus de la 1ère occurence trouvée.
2) la Sub ToutesOccurences insère une ligne vierge au-dessus de toutes les occurences trouvées.
les 2 macros cherchent le mot ENTIER et sont sensibles à la casse (distinction des minuscules et des majuscules).

Cordialement.

PMO
Patrick Morange

Bonjour,

Merci pour votre tuto qui fonctionne à merveilles...
J'essaye d'optimiser la modification de notre tarif qui est très chronophage.
J'espère que vous pourrez m'aider 🙂
Comment faire pour insérer : au lieu d'une ligne vide, une ligne précise d'une autre feuille par exp: Feuil2!A1 : F1 (avec des données) ?

Cordialement OB
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
616
Réponses
3
Affichages
666
Retour