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
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 ?
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...
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
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
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" <tristan.pochat@gmail.com> a écrit dans le message de news:
1163581113.507733.170840@b28g2000cwb.googlegroups.com...
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
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 ?
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
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 ?