Code VBA pour remplir plusieurs colonnes si une autre est renseignée

samimi94

XLDnaute Occasionnel
Bonsoir le forum,

Cela fait un moment que je n'étais venue vous sollicitez.

J'espère que vous allez bien.

Je recherche désespérement un code VBA qui me permettrait de remplir les colonnes C, D et E de données fixes quand sur la même ligne, la colonne I est remplie.


Pour cela j'ai besoin que la macro scrute tout mon classeur depuis la colonne I est remplisse toutes les cellules des colonnes B, D, E des lignes dont les cellules de la colonne I sont renseignées.

Ex : En I je renseigne une donnée TOTO sur 10 lignes, je veux que dans la colonne C j'ai TITI, dans la colonne D je dois avoir TUTU et E avoir TATA et cela sur les 10 lignes.


Je pensais trouver cela facilement sur les autres posts mais je ne parviens pas au résultat voulu.

Par avance, merci pour votre aide et très bonne soirée ou nuit à tous.

Samimi94
 

mth

XLDnaute Barbatruc
Re : Code VBA pour remplir plusieurs colonnes si une autre est renseignée

Bonsoir Samimi :) :)

Peut-être comme ceci?
Code:
Sub remplir()
Dim lig As Long
With Sheets("Feuil1")
    lig = .Cells(Rows.Count, 9).End(xlUp).Row
    For Each c In .Range("I1:I" & lig).SpecialCells(xlCellTypeConstants)
        If c <> "" Then
            c.Offset(0, -6) = "TITI"
            c.Offset(0, -5) = "TUTU"
            c.Offset(0, -4) = "TATA"
        End If
    Next c
End With
End Sub

Bien à toi,

mth

Edit: :) :) Bonsoir Robert :) :) Hello Fred0o :) :)
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Code VBA pour remplir plusieurs colonnes si une autre est renseignée

Bonsoir Samimi, bonsoir le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
 
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1" (à adapter à ton cas)
    Set pl = .Range("I1:I" & .Cells(Application.Rows.Count, 9).End(xlUp).Row) 'définit la plage pl
    For Each cel In pl 'boucle sur toutes les cellules éditées cel de la plage pl
        If cel.Value <> "" Then 'condition : si la cellule cel n'est pas vide
            cel.Offset(0, -6).Value = "Titi" 'place "Titi"en colonne C
            cel.Offset(0, -5).Value = "Tutu" 'place "Tutu"en colonne D
            cel.Offset(0, -4).Value = "Tata" 'place "Tata"en colonne E
        End If 'fin de la condition
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub

[Édition]
Bonsoir Mireille on s'est croisé...
 

Fred0o

XLDnaute Barbatruc
Re : Code VBA pour remplir plusieurs colonnes si une autre est renseignée

Bonsoir samimi94,

Tu peux essayer ce code par exemple :
VB:
Sub Remplir()
    Dim c
    For Each c In Range("I:I")
        If c = "TOTO" Then
            Range("C" & c.Row & ":E" & c.Row) = Array("TITI", "TUTU", "TATA")
        End If
    Next
End Sub

A+

Edit : Bonsoir mth, Robert. Y'a du monde cesoir, ça se bouscule au portillon...
 

samimi94

XLDnaute Occasionnel
Re : Code VBA pour remplir plusieurs colonnes si une autre est renseignée

Bonsoir mth,

Un grand merci pour t'être penché sur mon problème.

Cela a fonctionné du premier coup, et moi qui cherche depuis des heures sans résultat :)

Excellente soirée à toi et au forumers.
 

samimi94

XLDnaute Occasionnel
Re : Code VBA pour remplir plusieurs colonnes si une autre est renseignée

Bonsoir Robert, Fred0o,

Nos messages se sont croisés.

Je n'ai pas encore testé vos bouts de codes, je vais m'empresser de le faire, cela me permettra d'améliorer mon niveau plus que médiocre en VBA (je pense que je progresse lentement lol).

Merci à tous pour votre aide et votre partage de connaissance.

Bonne fin de soirée.

Samimi94
 

Discussions similaires

Réponses
22
Affichages
746
Réponses
7
Affichages
327

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa