inserer cellule sous condition

  • Initiateur de la discussion Initiateur de la discussion man95
  • Date de début Date de début

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 !

man95

XLDnaute Occasionnel
bonsoir à vous tous et tout mes voeux pour cette année 2009


je vous expose mon probleme sur lequel je seche depuis quelques temps

j'aimerai inserer une cellule (et decaler le reste de la ligne vers la droite) si dans la cellule A1 le texte (ex: toto) puis le repeter sur la totalité des lignes non vides

je vous remercie par avances de vos solutions


Man
 
Re : inserer cellule sous condition

Bonjour,
C'est beaucoup plus clair
Code:
Sub Macro1()
With ActiveSheet
    For i = 3 To .Range("A65000").End(xlUp).Row
        If .Cells(i, 1) = "Toto" Then
        .Cells(i, 1).End(xlToRight).Insert Shift:=xlToRight
        End If
    Next
End With
End Sub
A+
kjin
 
Re : inserer cellule sous condition

Bonjour Man, Kjin, bonjour le forum,

J'arrive tard mais comme ma réponse utilise une autre méthode (Rechercher) que celle de Kjin , je la propose quand même...

Code:
Sub Macro1()
Dim r As Range 'déclare la variable r (Recherche)
Dim ad As String 'déclare la variable ad (ADresse de la première occurrence trouvée)
 
With Range("A3:A" & Range("A65536").End(xlUp).Row) 'prend en compte la plage éditée de la colonne A (à adapter pour le début)
    Set r = .Find("Toto", , xlValues, xlWhole) 'définit la variable r (à adapter pour "Toto")
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence de r
        ad = r.Address(0, 0) 'définit la variable ad
        Do 'exécute
            r.Offset(0, 6).Cut r.Offset(0, 7) 'décale la sixième cellule d'une colonne vers la droite
            Set r = .FindNext(r) 'redéfinit la variable r (prochaine occurrence de r)
        Loop While Not r Is Nothing And r.Address(0, 0) <> ad 'boucle tant qu'il existe une nouvelle occurrence à une adresse différente de ad
    End If 'fin de la condition
End With 'fin de la prise en compte de la plage éditée de la colonne A
 
End Sub
 
Re : inserer cellule sous condition

Bonjour man95, kjin 🙂,

Voici un autre code (plus rapide si tu as beaucoup de données):

Code:
Sub decale()
  Dim Trouve As Range, FirstAddress As String
  With Columns(1)
    Set Trouve = .Find("Toto", LookIn:=xlValues, lookat:=xlWhole)
    If Not Trouve Is Nothing Then
      FirstAddress = Trouve.Address
      Do
        Trouve.End(xlToRight).Insert Shift:=xlToRight
        Set Trouve = .FindNext(Trouve)
      Loop While Not Trouve Is Nothing And Trouve.Address <> FirstAddress
    End If
  End With
End Sub

Bon après-midi à vous

Edit: Hello Robert 🙂, promis j'ai pas copié 😀
 
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

B
Réponses
4
Affichages
2 K
benoitoleron
B
C
Réponses
11
Affichages
2 K
C
T
Réponses
0
Affichages
2 K
tom1234
T
F
Réponses
7
Affichages
2 K
F
Réponses
4
Affichages
5 K
R
Réponses
11
Affichages
3 K
romain001
R
B
Réponses
5
Affichages
799
B
Retour