comparaison de cellules - VB/VBA/VBS - Programmation
Marsh Posté le 02-08-2006 à 16:08:07
c'est super compliqué ton code pour juste faire un test sur des .value de cellules
if cells(i,j).value = cells(k,l).value then devrait suffire
Marsh Posté le 02-08-2006 à 16:19:26
t imagines bien que .....il a une raison
donc en fait c est la comparaison de 2 fichiers textes importes
sur 2 feuilles differentes !!!
ensuite ca enleve les doublons compare les cellules pour mettre
les quantites de la feuille 2 sur la feuille 1 quand c est necessaire
c est pour ca que c est complique
et ca fait pas que ca .... ca met en page ca trie
enfin ca fait pleins de trucs
sinon pour mes espaces ???
Marsh Posté le 02-08-2006 à 16:26:05
il n'empeche que je ne comprends pas pourquoi tu passes par cette décomposition sans avoir vu le reste ^^
à la place du test mets un msgbox tempoT et tempoN pour voir.
Marsh Posté le 02-08-2006 à 16:34:34
heuuuu
elle fait quoi cette demo ??? ......
la je pige pas......
desole de mes lacunes
Marsh Posté le 02-08-2006 à 16:35:17
biglio a écrit : heuuuu |
elle supprime les espaces de tes cellules.
Marsh Posté le 02-08-2006 à 16:41:09
jpcheck a écrit : il n'empeche que je ne comprends pas pourquoi tu passes par cette décomposition sans avoir vu le reste ^^ |
ben en fait c est 2 tableaux a comparer qui font 200 lignes chacuns voir plus
voir moins.....jamais la meme taille !!!
et vu que les 2 tableaux ne sont pas classes dans le meme ordre....
je prends une ligne du tableau 1 que je compare a TOUTES les ligne du tableau 2
apres pareil avec la ligne 2,3,4..... du tableau 1 avec toutes celles du tableau 2 !!!
Marsh Posté le 02-08-2006 à 16:42:15
biglio a écrit : ben en fait c est 2 tableaux a comparer qui font 200 lignes chacuns voir plus |
ben utilise le code de galopin01, le reste du code c'est des boucles for imbriquées.
Marsh Posté le 02-08-2006 à 16:44:13
jpcheck a écrit : elle supprime les espaces de tes cellules. |
moi j ai juste une feuille excel .... avec du texte .....qui fait rien....
comment et ou je vois le truc qui se fait ??? je vois pas de formules...
merci encore et desole
Marsh Posté le 02-08-2006 à 16:45:55
biglio a écrit : moi j ai juste une feuille excel .... avec du texte .....qui fait rien.... |
Alt+ F11 pour voir le code.
Marsh Posté le 02-08-2006 à 16:47:55
jpcheck a écrit : ben utilise le code de galopin01, le reste du code c'est des boucles for imbriquées. |
je peux pas faire de boucle FOR ..... si je connais pas mon nombre de ligne non ???
avec mon truc ca s arrete pile a la fin du tableau quand il y a plus de texte ...
merci si il y a une astuce
Marsh Posté le 02-08-2006 à 16:48:19
ReplyMarsh Posté le 02-08-2006 à 16:49:28
tu stocke la longueur de ta colonne au pire. Tu as normalement suffisamment d'éléments pour résoudre ton problème maintenant
Marsh Posté le 02-08-2006 à 16:52:55
jpcheck a écrit : tu stocke la longueur de ta colonne au pire. Tu as normalement suffisamment d'éléments pour résoudre ton problème maintenant |
ben en fait j ai jamais eu de pb pour mes tableaux !!!
c est toi qui me dis que je fais complique...
le seul pb c est quand j ai du texte qui comprend 2 espaces d affiles....ca marche pas....
ca me plante....
et j arrive pas a voir le code de galopin alors.....
en plus y a penalty .....et je sais pas pourquoi
Marsh Posté le 02-08-2006 à 16:54:41
le code du module est le suivant :
Sub Test()
For i = 1 To 4
Var1 = Replace(Cells(i, 1), " ", "" )
Var2 = Replace(Cells(i, 2), " ", "" )
MsgBox Var1 = Var2
Next
End Sub
enjoy!
Marsh Posté le 02-08-2006 à 16:57:55
jpcheck a écrit : le code du module est le suivant : |
je viens de le trouver ...milles excuses
par contre ca me supprime mes espaces........
et moi je veux les garder !!! je veux juste que si il y a 2 espaces
ca n en laisse qu un !!! et que ca supprime pas quand il y a 1 espace
je remplace -> Replace(Cells(i, 1), " ", "" ) par ca ? -> Replace(Cells(i, 1), " ", " " ) ??
merci et desole de vous derranger...(je vous ennerve ou quoi ???)
Marsh Posté le 02-08-2006 à 17:06:43
biglio a écrit : je viens de le trouver ...milles excuses |
non tu ne nous énerves pas t'inquiète
et oui tu fais Replace(Cells(i, 1), " ", " " ) si tu souhaites transfo les 2 espaces par un seul. Attention, le code de galopin marchait pour un nombre x de " " donc à toi de voir, si jamais il y a 3 espaces par exemple...
Marsh Posté le 02-08-2006 à 17:10:35
merci ca y est j ai pige en jouant un peu avec le code
je vais faire ma sauce avec tout ca
quand tu dis un nombre x .......c est chaud ca
merci a vous !!!!
Marsh Posté le 02-08-2006 à 20:39:54
pas de quoi.
rem : Le penalty c'est pour avoir croisé ma route à la même heure : 16:45:55
C'est limite dangereux !
Non... mais !
Marsh Posté le 02-08-2006 à 16:03:48
bonjour
je souhaite faire une comparaison de cellules comportant un nom avec des espaces (2 espaces
a cote l un de l autre) et ca ne marche pas ca ne trouve pas les cellules identiques
meme si elle ont le meme texte :
exemple cellule 1 -> CHIE N
cellule 2 -> CHIE N
resultat ca ne trouve pas que cellule 1 = cellule 2
si cellule 1 -> CHIE N (1 espace) et cellule 2 -> CHIE N (1 espace) CA marche !!!!
comment gerer ces 2 espaces ???
cellule 1 et 2 sont dimenssiones en STRING
voici le code en question :
Dim x As String
Dim y As String
Dim celluleBtemp As String
Dim celluleItemp As String
Dim celluleAnomenclature As String
Dim celluleBnomenclature As String
Dim celluleInomenclature As String
Dim celluleKnomenclature As String
Dim ligne_selection As String
Dim tempoT As String
Dim tempoN As String
x = 10
y = 10
retour:
celluleBtemp = "B" & x
' Range(celluleBtemp).Select
If Worksheets("temp" ).Range(celluleBtemp).Value = "" Then
GoTo termine
Else
celluleBtemp = "B" & x
celluleItemp = "I" & x
celluleBnomenclature = "B" & y
celluleInomenclature = "I" & y
'Sheets("TEMP" ).Select
tempoT = Worksheets("temp" ).Range(celluleBtemp).Value
'Sheets("NOMENCLATURE" ).Select
tempoN = Range(celluleBnomenclature).Value
'Sheets("TEMP" ).Select
If tempoT = tempoN Then
et la ca trouve pas que tempoN = tempoT meme si le texte est bien correct avec le debogeur