inserer cellule sous condition

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
 

man95

XLDnaute Occasionnel
Re : inserer cellule sous condition

Bonjour le forum,Kjin

En me relisant je comprend que ma demande ne semble pas tres clair !

je joint donc un fichier example qui j'espère sera plus explicite.

Vous remerciant par avance

Man
 

Pièces jointes

  • Decaler si.xls
    17.5 KB · Affichages: 118

kjin

XLDnaute Barbatruc
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

skoobi

XLDnaute Barbatruc
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é :D
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 335
Membres
103 820
dernier inscrit
andre.l.desjardins@gmail.