Noircir un certain nombre de case

Bonjour,

Je ne m'y connais pas en VBA mais je pense qu'il peu détenir ma solution.

J'ai des donnés sous forme numérique

ex:

1 2 5 2 1

3 4 1 1 2

Ces données correspondent à un dessin :

1 case blanche 2 noires 5 blanches 2 noires une blanche

3 cases blanches 4 noires, 1 blanche, 1 noire, 2 blanches.

J'ai celà écrit à la main dans un cahier et je souhaite visualiser ce que ça va donner.

dans un fichier excel j'ai retapé ces chiffre, un par case en grisant les colones de cases noires pour ne pas me tromper.

En face j'ai fait une mise en forme conditionnelle où 1=gris et 2=noir.

du coup je tape à la main

1 1 2 2 1 1 1 1 1 2 2 1

1 1 1 2 2 2 2 1 2 1 1

je souhaiterais que la partie graphique se fasse toute seule, soit par une mise en forme automatique, soit par le remplissage des case en 1 et 2

J'ai bien trouvé une solution avec des SI mais c'est trés contraignant (je l'ai fait pour 3 cases) sachant que le nombre de cases à griser peuvent monter à plus d'une soixantaine.

Pourriez vous m'aider?

Bonjour,

proposition via une macro

mettre les séquences de nombres (séparés par un blanc) en colonne A

Sub test()
    Dim a
    i = 1
    While Cells(i, 1) <> ""
        a = Split(Cells(i, 1), " ")
        ptr = 3
        couleur = vbWhite
        For k = LBound(a) To UBound(a)
            For j = 1 To a(k)
                Cells(i, ptr).Interior.Color = couleur
                ptr = ptr + 1
            Next j
            If couleur = vbWhite Then couleur = vbBlack Else couleur = vbWhite
        Next k
        i = i + 1
    Wend
End Sub

Bonjour,

D'abord, merci de vous pencher sur mon problème.

Mais cela ne fonctionne pas, il ne me fais que des cases blanches

Je joint l’exemple de ce que j'ai fait jusqu'à présent, finalement la formule avec "si" ne fonctionne pas au delà de 3 cases

edit, sur certains dessins il y a des erreurs, si je pouvais faire aussi le contraire (à partir d'un tableau avec des 1 et des 2) calculer le nombre de 1 puis de 2 puis de 1 puis de 2 quand je les corrige, ce serais un plus

12graph-test.zip (8.91 Ko)

Bonjour,

par code, la mise en forme conditionnelle est inutile : à supprimer …

Je suis d'accord Marc si on se contente du sens "code -> dessin" mais lorsqu'il y a une boulette (et ça arrive souvent) il est plus facile pour la rectifier d'avoir à taper 1 ou 2.

Méa culpa, celà fonctionne.

pourriez vous me suggerer une page qui me permette de voir comment faire pour modifier la mise en forme de la cellule afin de la faire telle qu'avec ma mise en page?


Après test il me dit "erreur d'execution 13" à la ligne 10 et s'arrette

Dans ce cas il faudrait être logique !

MFC identique de B1 à Z1 comme dans le tableau final débutant en AB2

et saisir dans cette plage B1:Z1 le nombre correspondant à la couleur,

le code en serait simplifié …

Je me sens... hum... j'essaye de comprendre ce que tu viens de dire mais c'est du chinois pour moi

donc MFC "mise en forme conditionnelle" OK

comment faire pour transformer la fonction "couleur" du code en "while donne 1 then donne 2 else donne 3"

C'est bien ça?

Apparemment cela n'a pas l'air d'intéresser foule …

De mon côté, deux solutions possibles :

• sans MFC : suppression de la MFC du tableau final, la couleur sera reprise dans la plage B1:Z1 …

• avec MFC : copie de la MFC du tableau final dans la plage B1:Z1 & saisie du code couleur - 1 ou 2 - dans chaque cellule

qui sera repris pour alimenter le tableau final afin de déclencher la couleur via la MFC …

Voilà, voilà ! A toi de choisir, après je verrais pour une p'tite démonstration …

Bonjour,

Ci-joint ton fichier test ...

Il te suffit de choisir la couleur (ou différentes couleurs) sur la première ligne ... puis de saisir tes chiffres ...

23test-perline.xlsm (18.77 Ko)

Bonjour bonjour!

Encore merci de vous interresser à mon probleme

Marc je préfère la solution 2.

James je n'arrive pas à faire fonctionner ton fichier : il n'y a pas de macro à activer quand je clique sur le bouton macro, et rien ne se passe quand je change les chiffres.

Bonjour,

Tu dois d'abord autoriser le fonctionnement des macros ...

Ensuite, il n'y a rien à faire ... après avoir choisi les couleurs sur la première ligne ... il faut retaper chaque chiffre dans sa cellule ...

Ah Ca y est j'ai chercher un peu plus loin j'ai cru qu'il fallais autoriser seulement au début, mais il y avais une autre case à cocher,

Ca fonctionne. par contre il faut que je tape tous les chiffres un par un. bon c'est faisable même si j'ai déjà tapé plus de 2100 lignes (et je n'en suis qu'au tiers)

Et plus embêtant, quand j'efface, les couleurs restent. La solution est de reprendre la ligne et la remette en blanc.

Re,

Pour répondre à tes deux questions ...

1. Ci-joint une version dans laquelle il suffit de saisir x dans la colonne A pour que les couleurs de ton dessin s'effacent ...

2. Si tu as 6'300 lignes de données, effectivement l'automaticité ne sera utile que pour 4'200 lignes ... et si tu as déjà saisi 2'100 lignes, tu peux joindre ton fichier actuel pour y ajouter une macro qui réplique le comportement de la macro évènementielle ...

15test-perline.xlsm (19.30 Ko)

Tu est génial James MERCI

Il faut que je te joigne mon fichier de base ici?

Re,

Merci pour tes remerciements ...

Si tu as besoin de "rattraper" le dessin de tes 2'100 premières lignes ... je peux t'ajouter une macro adaptée à ton fichier ...

Merci! je te l'envoie en MP

Une fois la grille saisie en colonnes B:Z, voici la solution n°2 via la MFC :

Sub Demo()
With Feuil1
    .[AB2].CurrentRegion.ClearContents
    VA = .Cells(1).CurrentRegion.Value
    ReDim TR$(2 To UBound(VA), 0)

    For R& = 2 To UBound(VA)
        For C& = 2 To UBound(VA, 2)
            If VA(R, C) = "" Then Exit For
            For N% = 1 To VA(R, C):  TR(R, 0) = TR(R, 0) & VA(1, C) & vbTab:  Next
        Next
    Next

    With .[AB2].Resize(UBound(TR) - 1):  .Value = TR:  .TextToColumns:  End With
End With
End Sub

Elle ne fonctionne pas marc :

elle met tout en blanc de la ligne 1 à 10 et rien d'autre

Aucun souci de mon côté avec ton fichier joint sur différentes versions d'Excel en respectant

la condition préalable de la saisie en B1:Z1 des numéros de couleur pourtant indiquée par deux fois !

Marc L a écrit :

MFC identique de B1 à Z1 comme dans le tableau final débutant en AB2

et saisir dans cette plage B1:Z1 le nombre correspondant à la couleur

Marc L a écrit :

• avec MFC : copie de la MFC du tableau final dans la plage B1:Z1 & saisie du code couleur - 1 ou 2 - dans chaque cellule

qui sera repris pour alimenter le tableau final afin de déclencher la couleur via la MFC …

Désolée je n'avais pas tout compris, je bosse en même temps sur un truc complexe et mon cerveau a du mal sur autre chose.

Mais pourquoi celà ne fonctionne que sur les 10 premières lignes?


je me répond moi même : parce qu'il y a un saut de ligne!

Rechercher des sujets similaires à "noircir certain nombre case"