[VBA] - Remplir colonne en fonction des ligne

Résolu/Fermé
Kokos - 5 août 2010 à 10:44
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 5 août 2010 à 14:19
Bonjour,

Je suis débutant en VBA et je cherche, pour la réalisation de macros, à remplir une colonne avec une valeur par défaut (la chaîne "EIS" en l'occurence) et cela si les lignes de mon tableau sont renseignées.

J'ai testé ces morceaux de code qui fonctionnent mais qui me remplissent toute la colonne :

Range(Cells(1,3),Cells(10,3)).Select
Selection.Value = "EIS"
(remplit donc EIS dans les 10 premières cellules de la colonne C)

ou

Dim vBassin As Object
For Each vBassin In Columns("T:T")
vBassin.Value = "EIS"
Next
(ici toute la colonne T est remplie)


Merci d'avance pour votre aide.




A voir également:

7 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 août 2010 à 10:47
Bonjour,
Que veux-tu dire par...
si les lignes de mon tableau sont renseignées.
A+
0
Je veux dire par là que si, par exemple, les lignes 1,2 et 5 contiennent des valeurs (donc ne sont pas vides), je remplis ma colonne (que j'appelle codbassin) avec la valeur "EIS".
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 août 2010 à 11:55
Ca j'avais bien compris, mais dans quel colonnes pourrait-il y avoir des données ?
0
dans mon cas, on va dire que les colonnes doivent toutes contenir des valeurs.
j'ai 21 colonnes. Il faut que je remplisse la colonne codbassin (colonne 20) si toutes les autres contiennent des valeurs.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 août 2010 à 12:21
Suivant tes explications...
Public Sub TestLignes()
Dim Lig As Long, LigDeb As Long, LigFin As Long, Col As Integer
    LigDeb = 2 'à adapter
    LigFin = Sheets("Feuil1").Range("A65535").End(xlUp).Row
    For Lig = LigDeb To LigFin
        For Col = 1 To 20
            If Cells(Lig, Col) = "" Then Exit For
        Next Col
        If Col > 20 Then Cells(Lig, 21) = "EIS"
    Next Lig
End Sub

A+
0
Merci pour ton aide, cela m'a déjà donné une piste.
Je n'ai peut-être pas été assez clair. Un ptit tableau sera plus utile à une explication....

....A ..B ...C ....D ....E <> S ...T ...U

1 12 1.2 1258 0.05 0.06 0.01 .......2
2 25 0.5 989 0.12 0.05 0.01 .........3
3 17 1.1 1368 0.09 0.01 0.00 .......9
4 23 1.9 1565 0.11 0.10 0.01 .......5
5 22 0.7 1112 0.07 0.07 0.02 .......4
6
7
.
.


Voilà, chaque ligne de 1 à 5 contient des valeurs dans ses colonnes sauf la colonne T (dans laquelle je souhaite affecter la chaine "EIS")
Les lignes de 6 à 65535 sont vides.
Et je souhaite donc "EIS" dans T1:T5.

Et surtout si je mets à jour mon fichier et que d'autres lignes viennent s'y ajouter, que je puisse trouver la valeur "EIS" dans la colonne correspondante.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 août 2010 à 14:19
Si je comprend bien, les lignes renseignées sont toutes complètes..
Si oui..
Sub Test1()
Dim Plage As Range
Set Plage = Range(Cells(1, "T"), Cells((Range("A65535").End(xlUp).Row), "T"))
Plage = "EIS"
End Sub
0