OVH Cloud OVH Cloud

Evaluation d'une quantité ou pas

2 réponses
Avatar
Lycaon
Bonjour =E0 tous,

J'ai un probl=E8me dans ce bout de code

On Error Resume Next
For J =3D 1 To Der
T =3D
UCase(Left(LTrim(Workbooks(NomClasseurEnCours).Worksheets(1).Range("A"
& J).Value), 3))
Select Case T
Case IsNumeric(T), Is =3D "NEW"
Workbooks(NomClasseurEnCours).Worksheets(1).Range("A" &
J).EntireRow.Copy
If
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row =3D 65536
Then

With Workbooks(NomClasseur).Sheets(1)
.Range("A1").Insert
End With

Else:

With Workbooks(NomClasseur).Sheets(1)
.Range("A3").End(xlDown).Offset(1,
0).EntireRow.PasteSpecial
End With

End If

Case Else

Workbooks(NomClasseurEnCours).Worksheets(1).Range("A" &
J).EntireRow.Copy

If
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row =3D 65536
Then

With Workbooks(NomClasseur).Sheets(1)
.Range("A1").Insert
.Range("A1").Value =3D "Totally New"
End With

Else: With Workbooks(NomClasseur).Sheets(1)
.Range("A3").End(xlDown).Offset(1,
0).EntireRow.PasteSpecial
.Range("A" &
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row).Value =3D
"Totally New"
End With

End If


End Select
Next

Dans l'instruction .Range("A" &
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row).Value =3D
"Totally New" situ=E9e =E0 la fin, il y a un probl=E8me d'=E9valuation.
Parfois, apr=E8s avoir copi=E9 la ligne conform=E9ment aux instructions
juste au dessus, il met la valeur de la derni=E8re ligne
.Range("A3").End(xlDown).Row =E0 jour et parfois non ce qui me pose un
grave probl=E8me : il ne met pas la valeur "totally new" dans la bonne
case !!!!

Comment le forcer =E0 mettre =E0 jour automatiquement la valeur ?

Merci de votre aide

Lycaon

2 réponses

Avatar
Lycaon
ou a contrario, comment faire pour qu'il ne s'évalue pas ? En effet,
dans l'immense majorité des cas, il ne s'évalue pas à cet instant...
Avatar
MichDenis
As-tu essayé ceci :

J'ai réécrit le dernier With ... End With

With Workbooks(NomClasseur).Sheets(1)
.Range("A" & .Range("A65536").End(xlUp)(2).Row).EntireRow.PasteSpecial
.Range("A" & .Range("A65536").End(xlUp).Row).Value = "Totally New"
End With

P.S. Je t'avais recommandé de modifier cette ligne de code et t'avais proposé
un code de remplacement...Tu n'as pas jugé bon de corriger ??? Pourquoi ?
Case IsNumeric(T), Is = "NEW"



"Lycaon" a écrit dans le message de news:

Bonjour à tous,

J'ai un problème dans ce bout de code

On Error Resume Next
For J = 1 To Der
T UCase(Left(LTrim(Workbooks(NomClasseurEnCours).Worksheets(1).Range("A"
& J).Value), 3))
Select Case T
Case IsNumeric(T), Is = "NEW"
Workbooks(NomClasseurEnCours).Worksheets(1).Range("A" &
J).EntireRow.Copy
If
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row = 65536
Then

With Workbooks(NomClasseur).Sheets(1)
.Range("A1").Insert
End With

Else:

With Workbooks(NomClasseur).Sheets(1)
.Range("A3").End(xlDown).Offset(1,
0).EntireRow.PasteSpecial
End With

End If

Case Else

Workbooks(NomClasseurEnCours).Worksheets(1).Range("A" &
J).EntireRow.Copy

If
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row = 65536
Then

With Workbooks(NomClasseur).Sheets(1)
.Range("A1").Insert
.Range("A1").Value = "Totally New"
End With

Else: With Workbooks(NomClasseur).Sheets(1)
.Range("A3").End(xlDown).Offset(1,
0).EntireRow.PasteSpecial
.Range("A" &
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row).Value "Totally New"
End With

End If


End Select
Next

Dans l'instruction .Range("A" &
Workbooks(NomClasseur).Sheets(1).Range("A3").End(xlDown).Row).Value "Totally New" située à la fin, il y a un problème d'évaluation.
Parfois, après avoir copié la ligne conformément aux instructions
juste au dessus, il met la valeur de la dernière ligne
.Range("A3").End(xlDown).Row à jour et parfois non ce qui me pose un
grave problème : il ne met pas la valeur "totally new" dans la bonne
case !!!!

Comment le forcer à mettre à jour automatiquement la valeur ?

Merci de votre aide

Lycaon