"désimbricage" de boucle

  • Initiateur de la discussion jean-christophe
  • Date de début
J

jean-christophe

Guest
RE-BOJOUR,

tout fonctionne ! alors pourquoi écrire ??
BAs c'est que je sais ce que doit faire mon algo, mais je sais pas si VBA peut le faire, je pense que oui mais comme je suis pas un expert....

L'algo actuel contient 2 boules imbriqées. Or il faut que mon programme compare des cellules qui sont à la suite les unes des autres dans 2 fichiers différents.

Donc il faut qu'il fasse :
GOOD:
comparaison ligne 1 FICHIER A avec comparaison ligne 1 FICHIER B, puis ,
comparaison ligne 2 FICHIER A avec comparaison ligne 2 FICHIER B, puis
comparaison ligne 3 FICHIER A avec comparaison ligne 3 FICHIER B, puis
comparaison ligne 4 FICHIER A avec comparaison ligne 4 FICHIER B, puis

Je veux PAS:
BAD : (c'est ce que fais mon programme)
ALors que la c'est comme un tri à bulle c-a-d :

ligne1 avec ligne1,
puis ligne 1 avec ligne 2
puis ligne 1 (toujours elle!!) avec ligne3 etc!!!!


Et hop le code :



Sub CompareAndBold()
Dim CellSource As Range, CellCible As Range
Dim PlageSource As Range, PlageCible As Range

Dim WBSource As Workbook, WBCible As Workbook
Dim WSSource As Worksheet, WSCible As Worksheet
Dim CellSource_Val_1 As Variant





Set WBSource = Workbooks("essai.xls")
Set WSSource = WBSource.Sheets("Feuil1")

Set WBCible = Workbooks("macro.xls")
Set WSCible = WBCible.Sheets("Feuil1")


Set PlageSource = WSSource.Range("D1:D3")
Set PlageCible = WSCible.Range("D1:D3")



For Each CellSource In PlageSource
For Each CellCible In PlageCible


CellSource_Val = Left(CellSource.FormulaR1C1, Len(CellSource.FormulaR1C1) - 5)
MsgBox Len(CellSource.FormulaR1C1) - 5
MsgBox CellSource_Val

If CellSource_Val = CellCible.FormulaR1C1 Then Exit For

CellSource.Font.Bold = True
Next CellCible
Next CellSource


End Sub


MERCI et bon apétit ;-)
 
@

@+Thierry

Guest
Bonjour

Lien supprimé LOL !!!

Oui on peut mieux faire, of course, mais il faut passer par un niveau supérieur de programmation... Tableau et autres...

Enfin le Exit For te sort déjà de la boucle dès la première occurrence trouvée...

Bon aller Trois Fils, sur ce même programme !!! sans compter celui d'origine !

Bon Après Midi
@+Thierry
 
J

jean-christophe

Guest
>> oui, c justement ce que je craignais : pn peut pas faire comme en C , cad : d'un seul coup comparer les 2 lignes suivantes ??

Genre : next step1 step2 ??

* si je prnds l'option comparaisons de "string" est-ce qu'il existe une fonctio toute faite commme "compareTo" ??

Car la je vois pas pas comment faire autrement ?

Merci le forum
 
C

Creepy

Guest
Hello,

moi j'aurais fait un truc de ce genre avec une seule boucle :

dim NmrLigne as integer

NmrLigne =1

for ligne =1 to xxx
if comparaison ligne NmrLigne FICHIER A avec comparaison ligne NmrLigne FICHIER B
then
blablavbla
else
blablabla
end if
next NmrLigne

++

Creepy
 

Discussions similaires

Réponses
2
Affichages
135
Réponses
2
Affichages
171
Réponses
2
Affichages
289

Statistiques des forums

Discussions
312 391
Messages
2 087 942
Membres
103 679
dernier inscrit
yprivey3