Recherche une solution VBA au problème suivant

Bonjour les amis

Nous disposons d'une colonne vide qui comporte un certain nombre de cellules de couleur rouge.

Nous recherchons une solution en VBA qui permettrait de remplacer les cellules non colorées par un "nom+numéro à 3 chiffres"

Ce numéro à 3 chiffres doit s'incrémenter 1 seule fois entre chaque cellule de couleur rouge.

Il ne peut y avoir plus d'une cellule de couleur rouge à la suite.

Exemple :

Cellule rouge

Cellule vide

Cellule vide

Cellule rouge

Cellule vide

Cellule rouge

Cellule vide

Cellule vide

Cellule vide

Cellule rouge

ect ...

Résultat recherché :

Cellule rouge

nom-001

nom-001

Cellule rouge

nom-002

Cellule rouge

nom-003

nom-003

nom-003

Cellule rouge

ect...

Merci à vous

Bonjour,

même problème que sur ce fil :

https://forum.excel-pratique.com/excel/recherche-une-solution-vba-au-probleme-suivant-t29534.html

le traitement est le même il suffit de changer le test pour qu'au lieu de savoir si c'est vide, savoir si c'est rouge...

Après la seule "difficulté" est de savoir comment ces cellules deviennent rouges, si c'est par MFC, on ne pourra pas tester la couleur.

Cordialement,

Bonjour à vous Zirak

J'aimerais bien savoir résoudre le problème moi même C'est sûr. Mais je n'ais aucune notion en VBA ou Macro.

Le solution que vous m'avez fournit pour cet autre problème je m'en sert et elle fonctionne très bien .

J'imagine que tout les problèmes ont une ressemblance de prêt ou de le loin dans leur conception, mais ce problème reste malgré tout différent.

Petit Up

Est ce que c'est possible que tu aies plusieurs cellules rouges qui se suivent ?

Du genre

A1 : cellule rouge

A2 : cellule rouge

A3 : cellule vide

A4: cellule vide

Si oui, dans l'exemple ci dessus,

le resultat que tu veux c'est quoi :

A1 : cellule rouge

A2 : cellule rouge

A3 : nom-001

A4 : nom-001

ou alors

A1 : cellule rouge

A2 : cellule rouge

A3 : nom-002

A4 : nom-002

cdt

peux tu joindre ta colonne A dans un fichier ?

No possible, pas plus d'une cellule de couleur rouge à la suite.

A tester, dis moi si cela te convient

La ça devrait fonctionner si tes données sont dans la colonnes A.

(fonctionne pour 2000 lignes, si tu veux plus de ligne modifies for i = 1 to 2000 pour for i = 1 to 10000 par exemple)

Sub test()

numero = 0

For i = 1 To 2000

If Cells(i, 1).Font.Color <> vbRed Then
Cells(i, 1) = "nom-" & Format(numero, "000")
Else
numero = numero + 1
End If

Next i

End Sub
ketamacanna a écrit :

A tester, dis moi si cela te convient

La ça devrait fonctionner si tes données sont dans la colonnes A.

(fonctionne pour 2000 lignes, si tu veux plus de ligne modifies for i = 1 to 2000 pour for i = 1 to 10000 par exemple)

Sub test()

numero = 0

For i = 1 To 2000

If Cells(i, 1).Font.Color <> vbRed Then
Cells(i, 1) = "nom-" & Format(numero, "000")
Else
numero = numero + 1
End If

Next i

End Sub

Non cette solution ne fonctionne pas du tout.

Résultat obtenu avec cette solution :

nom-000 : écrit sur toute la colonne 2000 fois

Sa ne s'incrémente jamais et sa écrit aussi nom-000 sur les cellules de couleur rouge .

Les cellules de couleurs rouges sont supposées rester vide.


Je joins ici mon fichier test ketamacanna pour vous aider.

17fichier-test.xlsx (20.82 Ko)
Sub test()

numero = 0

For i = 1 To 2000

If Cells(i, 1).Interior.Color <> vbRed Then
Cells(i, 1) = "nom-" & Format(numero, "000")
Else
numero = numero + 1
End If

Next i

End Sub
ketamacanna a écrit :
Sub test()

numero = 0

For i = 1 To 2000

If Cells(i, 1).Interior.Color <> vbRed Then
Cells(i, 1) = "nom-" & Format(numero, "000")
Else
numero = numero + 1
End If

Next i

End Sub

Excellent ketamacanna Merci beaucoup

Rechercher des sujets similaires à "recherche solution vba probleme suivant"