Remplir Tableau - Mais Eviter Vide

Bonjour

Alors voila je voudrai remplir un tableau en premier temps dans sa totalité par des "X" dans toutes les cases non rouges (je veux éviters, que les lignes complete rouge ou je mettrai un titre dedans)

Et ensuite remplir par dessus avec des états que j'ai déjà dans le formulaire

En Gros je veux remplir mon tableau cf Piece jointe en evitant de remplir les lignes rouges. Petite precisión des lignes peuvent etre ajouter au cours de vie de cette Excel

Merci pour votre aide

Bonjour,

Je pensais qu'il fallait programmer le formulaire mais non, parfait

Bref, lors de l'ouverture du formulaire toute les cases vides non rouge se remplissent par une X,

A tester,

@+

Salut Loris Merci pour ta réponse

Si je comprend bien le code si y pas de couleur rouge ça remplie tout ? Il y a t-il un moyen de faire la meme chose mais avec plusieurs cellules vides de couleurs diferentes ? une fonction ou un endroit ou trouver le code des couleurs Excel ?

lig = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row

col = Sheets("Hoja1").Cells(1, Cells.Columns.Count).End(xlToLeft).Column

For i = 1 To lig

For j = 1 To col

If Cells(i, j).Value = "" And Cells(i, j).Interior.ColorIndex <> 3 Then

Cells(i, j).Value = "X"

End If

Next j

Next i

EDIT : Autant pour moi, normalement un rajouter d'un numero autre que 3=rouge ou un "and =numero couleur" est jouable

ok j'ai un soucis mdr

For i = 1 To lig

For j = 1 To col

If Cells(i, j).Value = "" And Cells(i, j).Interior.ColorIndex <> 40 And Cells(i, j).Interior.ColorIndex <> 36 Then

Cells(i, j).Value = "X"

End If

Next j

Next i

Ça me prend que 1 couleur normal ? Je devrait pas en avoir 2 a savoir 40 et 36?

EDIT : J'ai contourné le problème et fait l'inverse

lig = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row

col = Sheets("Hoja1").Cells(1, Cells.Columns.Count).End(xlToLeft).Column

Peux tu m'expliquer ses 2 lignes lorsque je mets C a la place de A et 3 a la place de 1, ça me remplit que A1 je comprend pas trop

lig = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row

col = Sheets("Hoja1").Cells(1, Cells.Columns.Count).End(xlToLeft).Column

Ces 2 lignes permettent de trouver la dernière ligne et colonne non vide de ta feuille. En détails :

Range("A" & Rows.Count) 'Sélectionne les cellules de la colonne A
.End(xlUp).Row 'Remonte jusqu'à trouver une cellule non vide

Même principe pour les colonnes.

Donc si tu mets la colonne C, la dernière ligne non vide n'est peut être pas à la même ligne qu'en colonne A d'où le faits que cela ne fonctionne plus

Concernant tes premières questions, as-tu trouver la solution ?

Sinon re-joint un fichier correspondant à ta demande et je jetterais un coup d’œil

@+

Merci oui concernant les autres question c'est ok pour moi

Il reste que ce soucis de remplir le reste du tableau

Bonjour,

Bon j'ai eu pas mal de problème avec ton fichier notamment pour ouvrir l'userform donc je te transmets le code directement

Le problème vient de ces 2 lignes :

lig = Sheets("Matrix").Range("C" & Rows.Count).End(xlUp).Row 'Change A par C
col = Sheets("Matrix").Cells(3, Cells.Columns.Count).End(xlToLeft).Column 'Change 1 par 3

Elles permettent de trouver la dernière ligne et dernière colonne, sauf que ta colonne A et ligne 1 étant fusionné, elles s'arrêtaient avant la fin du tableau ce qui n'est pas le cas avec la colonne C et ligne 3.

A tester donc,

@+

C'est ce que je pensáis faire au depart mais j'avais pas fait les modif avec tes remarques de ton code

Merci Loris ça marche parfaitement !

Du coup si j'ai bien compris si je défusionne je repars sur du A et 1

Oui effectivement dé-fusionner fonctionne SI et seulement SI la dernière ligne non vide de la cette colonne corresponde à la dernière ligne des autres colonnes

De façon plus générale, en VBA quand on cherche la dernière ligne et colonne, on se base sur la plus grande. Au moins nous sommes sûr que la dernière ligne/colonne correspondent bien aux autres

En tout cas, si ça fonctionne c'est le principal !

@+

Rechercher des sujets similaires à "remplir tableau eviter vide"