Macro excel Condition non-respecté

Résolu/Fermé
afullana Messages postés 295 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 8 juin 2012 - 8 avril 2010 à 08:58
afullana Messages postés 295 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 8 juin 2012 - 8 avril 2010 à 11:53
Bonjour,
j'ai crée un petit comparateur en macro, et mon probleme est que la comparaison ne fonctionne pas correctement.

Voici la macro:


Sub clear()
Do
If Worksheets("Lot").Range("C9") <> Worksheets("Data").Range("C3") Then

With Sheets("Lot")
.Range("C17:C200").ClearContents
.Range("G26").ClearContents
.Range("F32:G200").ClearContents
End With

With Sheets("Data")
.Range("A4:D200").ClearContents
End With

With Sheets("Data")
.Range("A3").QueryTable.Refresh BackgroundQuery:=False
End With

With Sheets("Lot")
.Range("C17").QueryTable.Refresh BackgroundQuery:=False
.Range("h27").QueryTable.Refresh BackgroundQuery:=False
.Range("F32").QueryTable.Refresh BackgroundQuery:=False
.Range("C9").Select

End With

Else
Attente (1)
End If

Loop
End Sub
--------------------------------------------------------------------------------------------
Sub Attente(seconde As Integer)
Dim Start, PauseTime
PauseTime = seconde
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop

End Sub


---------------------------------------------------------------------------------------------
Mon probleme est dans la 1ere boucle, au niveau du "If", je ne comprend pas pourquoi mon inegalité n'est pas respecté.

Je m'explique: J'ai exactement le meme code W002C022 sur mes cellule C9 ( feuille Lot) et C3 (feuille data ) et pourtant mon programme passe quand meme au "then" au lieu d'aller au "Else"

J'ai remarque que quelque soit la valeur que je met en C9, la condition passe au "then", il n'y a que quand il n'y a rien en C3 que le programme passe au " Else"

Avez vous une idée???

A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
8 avril 2010 à 09:06
Bonjour,
Ca peut être un problème de format ou d'espace superflu.
Avant toute chose essayez ceci :
Sub clear() 
Dim valeur1, valeur2 As String
valeur1 = Worksheets("Lot").Range("C9").Value
valeur2 = Worksheets("Data").Range("C3").Value
Do 
If valeur1 <> valeur2 Then 
With Sheets("Lot") 
.Range("C17:C200").ClearContents 
.Range("G26").ClearContents 
etc etc...

0
afullana Messages postés 295 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 8 juin 2012 19
8 avril 2010 à 09:12
J'ai trouvé...

En faite j'ai fusionné 6 cellules pour mon Code W002C022 (range:B9;D10) et en prenant C9, cela ne fonctionner pas

Par contre en prenant la 1ere ( B9) cela fonctionne nickel
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
8 avril 2010 à 09:27
Ben oui... tout simplement.
0
afullana Messages postés 295 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 8 juin 2012 19
8 avril 2010 à 09:59
Ehh ui...
En tout cas merci pour ta reponse, etant debutant tu viens de me montrer comment affecter un nom pour une donner sa pourra me servir plus tard...

Sinon, j'ai un probleme different maintenant que cela marche bien lol

Etant donner que ma macro est une boucle infini, elle tourne continuellement sur plusieurs poste au travail.

Mon souci c'est que ma macro utilise 50% de la ressource processeur sur un Core 2 Duo 6550

C'est normal? Est il possible de réduire cette charge CPu?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
8 avril 2010 à 10:08
C'est normal? Ca peut être normal, même si cela fait beaucoup (ENOORRRMME même!!)
Il faudrait certainement améliorer la macro. Pour cela, donne nous tout le code et dis nous sur combien de classeurs, feuilles, lignes et colonnes il s'applique...
Il y a ici bas de très bons programmeurs qui pourront certainement t'aider.
Relance un nouveau sujet intitulé : "ma macro utilise 50% de la ressource processeur"
0
afullana Messages postés 295 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 8 juin 2012 19
8 avril 2010 à 11:53
ok merci bcp Pijaku, je vais faire sa en debut d'aprem
0