For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1
If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp
Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " "
if teste = True then
Range("N26") = "1"
end if
qui me teste 2 conditions sur la ligne et qui retourne1 si les 2 conditions
sont bonnes.
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant.
Merci d'avance.
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Rien à voir avec la boucle
ceci devrait suffir. '---- If [E26] = "3 mois" And [A26] = " " Then [N26] = "1" '---- Ps : je ne crois pas que ce soit une bonne idée de travailler avec une cellule contenant un espace.
Salutations JJ
"Comres.metz" a écrit dans le message de news:42ce7bf4$2$25045$
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1 If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " " if teste = True then Range("N26") = "1" end if qui me teste 2 conditions sur la ligne et qui retourne1 si les 2 conditions
sont bonnes. Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Merci d'avance.
Bonjour,
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant.
Rien à voir avec la boucle
ceci devrait suffir.
'----
If [E26] = "3 mois" And [A26] = " " Then [N26] = "1"
'----
Ps : je ne crois pas que ce soit une bonne idée de travailler avec une
cellule contenant un espace.
Salutations
JJ
"Comres.metz" <comres.metz@gendarmerie.net> a écrit dans le message de
news:42ce7bf4$2$25045$8fcfb975@news.wanadoo.fr...
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To
1
Step -1
If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp
Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " "
if teste = True then
Range("N26") = "1"
end if
qui me teste 2 conditions sur la ligne et qui retourne1 si les 2
conditions
sont bonnes.
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant.
Merci d'avance.
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Rien à voir avec la boucle
ceci devrait suffir. '---- If [E26] = "3 mois" And [A26] = " " Then [N26] = "1" '---- Ps : je ne crois pas que ce soit une bonne idée de travailler avec une cellule contenant un espace.
Salutations JJ
"Comres.metz" a écrit dans le message de news:42ce7bf4$2$25045$
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1 If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " " if teste = True then Range("N26") = "1" end if qui me teste 2 conditions sur la ligne et qui retourne1 si les 2 conditions
sont bonnes. Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Merci d'avance.
Hervé
Bonjour, Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas toujours à ce que l'on pense. Il vaut mieux utiliser la fonction "PlageUtilisee" qui retourne réellement la plage de cellules utilisée. Pour tester, formate une cellule un peu éloignée de la plage de cellules utilisée sans inscrire de valeur et exécute cette proc en ayant pris soins de mettre la fonction "PlageUtilisee" dans le même module : '------------------- Sub Test_UsedRange() MsgBox PlageUtilisee(ActiveSheet).Address _ & vbCrLf _ & ActiveSheet.UsedRange.Address End Sub '-------------------
Regarde si cela te convient, il te faudra malgré tout adapter : Sub Tester() Dim Test As Boolean Dim Lin As Integer Dim Plg As Range
Set Plg = PlageUtilisee(ActiveSheet)
For Lin = Plg.Rows.Count To 1 Step -1 Test = Plg(Lin, 1) = "3 mois" And Plg(Lin, 5) = " " 'pour supprimer la ligne entière 'If Test = True Then Plg(Lin, 1).EntireRow.Delete If Test = True Then Range("N" & Plg(Lin, 1).Row) = 1 Next Lin
Set Plg = Nothing End Sub
Function PlageUtilisee(Fe As Worksheet) As Range With Fe Set PlageUtilisee = .Range(.Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 1).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 1).Column), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 2).Column)) End With Set Fe = Nothing End Function
Hervé.
"Comres.metz" a écrit dans le message news: 42ce7bf4$2$25045$
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1 If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " " if teste = True then Range("N26") = "1" end if qui me teste 2 conditions sur la ligne et qui retourne1 si les 2 conditions
sont bonnes. Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Merci d'avance.
Bonjour,
Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas
toujours à ce que l'on pense. Il vaut mieux utiliser la fonction
"PlageUtilisee" qui retourne réellement la plage de cellules utilisée. Pour
tester, formate une cellule un peu éloignée de la plage de cellules utilisée
sans inscrire de valeur et exécute cette proc en ayant pris soins de mettre
la fonction "PlageUtilisee" dans le même module :
'-------------------
Sub Test_UsedRange()
MsgBox PlageUtilisee(ActiveSheet).Address _
& vbCrLf _
& ActiveSheet.UsedRange.Address
End Sub
'-------------------
Regarde si cela te convient, il te faudra malgré tout adapter :
Sub Tester()
Dim Test As Boolean
Dim Lin As Integer
Dim Plg As Range
Set Plg = PlageUtilisee(ActiveSheet)
For Lin = Plg.Rows.Count To 1 Step -1
Test = Plg(Lin, 1) = "3 mois" And Plg(Lin, 5) = " "
'pour supprimer la ligne entière
'If Test = True Then Plg(Lin, 1).EntireRow.Delete
If Test = True Then Range("N" & Plg(Lin, 1).Row) = 1
Next Lin
Set Plg = Nothing
End Sub
Function PlageUtilisee(Fe As Worksheet) As Range
With Fe
Set PlageUtilisee = .Range(.Cells( _
.Cells.Find("*", .[A1], -4123, , 1, 1).Row, _
.Cells.Find("*", .[A1], -4123, , 2, 1).Column), _
.Cells( _
.Cells.Find("*", .[A1], -4123, , 1, 2).Row, _
.Cells.Find("*", .[A1], -4123, , 2, 2).Column))
End With
Set Fe = Nothing
End Function
Hervé.
"Comres.metz" <comres.metz@gendarmerie.net> a écrit dans le message news:
42ce7bf4$2$25045$8fcfb975@news.wanadoo.fr...
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To
1
Step -1
If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp
Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " "
if teste = True then
Range("N26") = "1"
end if
qui me teste 2 conditions sur la ligne et qui retourne1 si les 2
conditions
sont bonnes.
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant.
Merci d'avance.
Bonjour, Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas toujours à ce que l'on pense. Il vaut mieux utiliser la fonction "PlageUtilisee" qui retourne réellement la plage de cellules utilisée. Pour tester, formate une cellule un peu éloignée de la plage de cellules utilisée sans inscrire de valeur et exécute cette proc en ayant pris soins de mettre la fonction "PlageUtilisee" dans le même module : '------------------- Sub Test_UsedRange() MsgBox PlageUtilisee(ActiveSheet).Address _ & vbCrLf _ & ActiveSheet.UsedRange.Address End Sub '-------------------
Regarde si cela te convient, il te faudra malgré tout adapter : Sub Tester() Dim Test As Boolean Dim Lin As Integer Dim Plg As Range
Set Plg = PlageUtilisee(ActiveSheet)
For Lin = Plg.Rows.Count To 1 Step -1 Test = Plg(Lin, 1) = "3 mois" And Plg(Lin, 5) = " " 'pour supprimer la ligne entière 'If Test = True Then Plg(Lin, 1).EntireRow.Delete If Test = True Then Range("N" & Plg(Lin, 1).Row) = 1 Next Lin
Set Plg = Nothing End Sub
Function PlageUtilisee(Fe As Worksheet) As Range With Fe Set PlageUtilisee = .Range(.Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 1).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 1).Column), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 2).Column)) End With Set Fe = Nothing End Function
Hervé.
"Comres.metz" a écrit dans le message news: 42ce7bf4$2$25045$
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1 If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " " if teste = True then Range("N26") = "1" end if qui me teste 2 conditions sur la ligne et qui retourne1 si les 2 conditions
sont bonnes. Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Merci d'avance.
AV
Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas toujours à ce que l'on pense.
Depuis que je me tue à le répéter... C'est bien qu'il y en ai un qui prenne la relève ! ;-)
AV
Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas
toujours à ce que l'on pense.
Depuis que je me tue à le répéter...
C'est bien qu'il y en ai un qui prenne la relève !
;-)
Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas toujours à ce que l'on pense.
Depuis que je me tue à le répéter... C'est bien qu'il y en ai un qui prenne la relève ! ;-)
AV
AV
PS : dans ta fonction, la syntaxe du find
Set PlageUtilisee = .Range(.Cells(.Cells.Find("*", .[A1], pose problème car, comme le find commence toujours sa recherche après la cellule
donnée comme 2° argument (A1 dans ton code), il peut y avoir quelque soucis en cas de plage discontinue Exemple : Dans une feuille vierge, renseigner seulement la plage A1 et C3:C5 Réponse attendue : A1:C6 Ta fonction --> C3:C6 !
Set PlageUtilisee = .Range(.Cells(.Cells.Find("*", .[A1],
pose problème car, comme le find commence toujours sa recherche après la cellule
donnée comme 2° argument (A1 dans ton code), il peut y avoir quelque soucis en
cas de plage discontinue
Exemple :
Dans une feuille vierge, renseigner seulement la plage A1 et C3:C5
Réponse attendue : A1:C6
Ta fonction --> C3:C6 !
Set PlageUtilisee = .Range(.Cells(.Cells.Find("*", .[A1], pose problème car, comme le find commence toujours sa recherche après la cellule
donnée comme 2° argument (A1 dans ton code), il peut y avoir quelque soucis en cas de plage discontinue Exemple : Dans une feuille vierge, renseigner seulement la plage A1 et C3:C5 Réponse attendue : A1:C6 Ta fonction --> C3:C6 !
C'est génial, c'est exactement ce que je voulais. Je suis maintenant en train d'étudier le mecanisme. Je débute en VBA. Merci pour tout.
Bonjour, Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas toujours à ce que l'on pense. Il vaut mieux utiliser la fonction "PlageUtilisee" qui retourne réellement la plage de cellules utilisée. Pour tester, formate une cellule un peu éloignée de la plage de cellules utilisée sans inscrire de valeur et exécute cette proc en ayant pris soins de mettre la fonction "PlageUtilisee" dans le même module : '------------------- Sub Test_UsedRange() MsgBox PlageUtilisee(ActiveSheet).Address _ & vbCrLf _ & ActiveSheet.UsedRange.Address End Sub '-------------------
Regarde si cela te convient, il te faudra malgré tout adapter : Sub Tester() Dim Test As Boolean Dim Lin As Integer Dim Plg As Range
Set Plg = PlageUtilisee(ActiveSheet)
For Lin = Plg.Rows.Count To 1 Step -1 Test = Plg(Lin, 1) = "3 mois" And Plg(Lin, 5) = " " 'pour supprimer la ligne entière 'If Test = True Then Plg(Lin, 1).EntireRow.Delete If Test = True Then Range("N" & Plg(Lin, 1).Row) = 1 Next Lin
Set Plg = Nothing End Sub
Function PlageUtilisee(Fe As Worksheet) As Range With Fe Set PlageUtilisee = .Range(.Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 1).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 1).Column), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 2).Column)) End With Set Fe = Nothing End Function
Hervé.
"Comres.metz" a écrit dans le message news: 42ce7bf4$2$25045$
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To
1
Step -1 If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " " if teste = True then Range("N26") = "1" end if qui me teste 2 conditions sur la ligne et qui retourne1 si les 2
conditions
sont bonnes. Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Merci d'avance.
C'est génial, c'est exactement ce que je voulais.
Je suis maintenant en train d'étudier le mecanisme. Je débute en VBA.
Merci pour tout.
Bonjour,
Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas
toujours à ce que l'on pense. Il vaut mieux utiliser la fonction
"PlageUtilisee" qui retourne réellement la plage de cellules utilisée. Pour
tester, formate une cellule un peu éloignée de la plage de cellules utilisée
sans inscrire de valeur et exécute cette proc en ayant pris soins de mettre
la fonction "PlageUtilisee" dans le même module :
'-------------------
Sub Test_UsedRange()
MsgBox PlageUtilisee(ActiveSheet).Address _
& vbCrLf _
& ActiveSheet.UsedRange.Address
End Sub
'-------------------
Regarde si cela te convient, il te faudra malgré tout adapter :
Sub Tester()
Dim Test As Boolean
Dim Lin As Integer
Dim Plg As Range
Set Plg = PlageUtilisee(ActiveSheet)
For Lin = Plg.Rows.Count To 1 Step -1
Test = Plg(Lin, 1) = "3 mois" And Plg(Lin, 5) = " "
'pour supprimer la ligne entière
'If Test = True Then Plg(Lin, 1).EntireRow.Delete
If Test = True Then Range("N" & Plg(Lin, 1).Row) = 1
Next Lin
Set Plg = Nothing
End Sub
Function PlageUtilisee(Fe As Worksheet) As Range
With Fe
Set PlageUtilisee = .Range(.Cells( _
.Cells.Find("*", .[A1], -4123, , 1, 1).Row, _
.Cells.Find("*", .[A1], -4123, , 2, 1).Column), _
.Cells( _
.Cells.Find("*", .[A1], -4123, , 1, 2).Row, _
.Cells.Find("*", .[A1], -4123, , 2, 2).Column))
End With
Set Fe = Nothing
End Function
Hervé.
"Comres.metz" <comres.metz@gendarmerie.net> a écrit dans le message news:
42ce7bf4$2$25045$8fcfb975@news.wanadoo.fr...
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To
1
Step -1
If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp
Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " "
if teste = True then
Range("N26") = "1"
end if
qui me teste 2 conditions sur la ligne et qui retourne1 si les 2
conditions
sont bonnes.
Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant.
Merci d'avance.
C'est génial, c'est exactement ce que je voulais. Je suis maintenant en train d'étudier le mecanisme. Je débute en VBA. Merci pour tout.
Bonjour, Il faut être prudent en utilisant "UsedRange" car la plage ne correspond pas toujours à ce que l'on pense. Il vaut mieux utiliser la fonction "PlageUtilisee" qui retourne réellement la plage de cellules utilisée. Pour tester, formate une cellule un peu éloignée de la plage de cellules utilisée sans inscrire de valeur et exécute cette proc en ayant pris soins de mettre la fonction "PlageUtilisee" dans le même module : '------------------- Sub Test_UsedRange() MsgBox PlageUtilisee(ActiveSheet).Address _ & vbCrLf _ & ActiveSheet.UsedRange.Address End Sub '-------------------
Regarde si cela te convient, il te faudra malgré tout adapter : Sub Tester() Dim Test As Boolean Dim Lin As Integer Dim Plg As Range
Set Plg = PlageUtilisee(ActiveSheet)
For Lin = Plg.Rows.Count To 1 Step -1 Test = Plg(Lin, 1) = "3 mois" And Plg(Lin, 5) = " " 'pour supprimer la ligne entière 'If Test = True Then Plg(Lin, 1).EntireRow.Delete If Test = True Then Range("N" & Plg(Lin, 1).Row) = 1 Next Lin
Set Plg = Nothing End Sub
Function PlageUtilisee(Fe As Worksheet) As Range With Fe Set PlageUtilisee = .Range(.Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 1).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 1).Column), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , 2, 2).Column)) End With Set Fe = Nothing End Function
Hervé.
"Comres.metz" a écrit dans le message news: 42ce7bf4$2$25045$
Bonjour à toutes et à tous,
Je voudrais combiner ces 2 formules :
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To
1
Step -1 If Cells(lin, 1) = " " Then Rows(lin).Delete shift:=xlUp Next lin
Pour remonter de la derniere ligne à la premiere et
teste = Range("E26") = "3 mois") AND Range("A26") = " " if teste = True then Range("N26") = "1" end if qui me teste 2 conditions sur la ligne et qui retourne1 si les 2
conditions
sont bonnes. Je voudrais pouvoir tester ces 2 conditions ligne par ligne en remontant. Merci d'avance.
Hervé
Bonjour Alain, Effectivement, tu as raison, je n'ai pas testé avec valeur en A1 :o(( donc, d'après ton code, ma fonction devient :
Function PlageUtilisee(Fe As Worksheet) As Range With Fe Set PlageUtilisee = .Range(.Cells( _ .Cells.Find("*", .[IV65536], , , 1, 1).Row, _ .Cells.Find("*", .[IV65536], , , 2, 1).Column), _ .Cells( _ .Cells.Find("*", .[A1], , , 1, 2).Row, _ .Cells.Find("*", .[A1], , , 2, 2).Column)) End With Set Fe = Nothing End Function
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536 ??? bizarre
Merci encore et bon week-end à toi et à tout le monde ! Hervé.
"AV" a écrit dans le message news: ew7$
PS : dans ta fonction, la syntaxe du find
Set PlageUtilisee = .Range(.Cells(.Cells.Find("*", .[A1], pose problème car, comme le find commence toujours sa recherche après la
cellule
donnée comme 2° argument (A1 dans ton code), il peut y avoir quelque soucis en
cas de plage discontinue Exemple : Dans une feuille vierge, renseigner seulement la plage A1 et C3:C5 Réponse attendue : A1:C6 Ta fonction --> C3:C6 !
Bonjour Alain,
Effectivement, tu as raison, je n'ai pas testé avec valeur en A1 :o(( donc,
d'après ton code, ma fonction devient :
Function PlageUtilisee(Fe As Worksheet) As Range
With Fe
Set PlageUtilisee = .Range(.Cells( _
.Cells.Find("*", .[IV65536], , , 1, 1).Row, _
.Cells.Find("*", .[IV65536], , , 2, 1).Column), _
.Cells( _
.Cells.Find("*", .[A1], , , 1, 2).Row, _
.Cells.Find("*", .[A1], , , 2, 2).Column))
End With
Set Fe = Nothing
End Function
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536
??? bizarre
Merci encore et bon week-end à toi et à tout le monde !
Hervé.
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message news:
ew7$sU9gFHA.2444@tk2msftngp13.phx.gbl...
PS : dans ta fonction, la syntaxe du find
Set PlageUtilisee = .Range(.Cells(.Cells.Find("*", .[A1],
pose problème car, comme le find commence toujours sa recherche après la
cellule
donnée comme 2° argument (A1 dans ton code), il peut y avoir quelque
soucis en
cas de plage discontinue
Exemple :
Dans une feuille vierge, renseigner seulement la plage A1 et C3:C5
Réponse attendue : A1:C6
Ta fonction --> C3:C6 !
Bonjour Alain, Effectivement, tu as raison, je n'ai pas testé avec valeur en A1 :o(( donc, d'après ton code, ma fonction devient :
Function PlageUtilisee(Fe As Worksheet) As Range With Fe Set PlageUtilisee = .Range(.Cells( _ .Cells.Find("*", .[IV65536], , , 1, 1).Row, _ .Cells.Find("*", .[IV65536], , , 2, 1).Column), _ .Cells( _ .Cells.Find("*", .[A1], , , 1, 2).Row, _ .Cells.Find("*", .[A1], , , 2, 2).Column)) End With Set Fe = Nothing End Function
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536 ??? bizarre
Merci encore et bon week-end à toi et à tout le monde ! Hervé.
"AV" a écrit dans le message news: ew7$
PS : dans ta fonction, la syntaxe du find
Set PlageUtilisee = .Range(.Cells(.Cells.Find("*", .[A1], pose problème car, comme le find commence toujours sa recherche après la
cellule
donnée comme 2° argument (A1 dans ton code), il peut y avoir quelque soucis en
cas de plage discontinue Exemple : Dans une feuille vierge, renseigner seulement la plage A1 et C3:C5 Réponse attendue : A1:C6 Ta fonction --> C3:C6 !
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536 ??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
AV
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536 ??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
AV
Hervé
c'est bonnet blanc/blanc bonnet Effectivement, c'est comme $A:$IV
Hervé.
"AV" a écrit dans le message news:
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
AV
c'est bonnet blanc/blanc bonnet
Effectivement, c'est comme $A:$IV
Hervé.
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message news:
OPF5ZkIhFHA.3656@TK2MSFTNGP09.phx.gbl...
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre
de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est
$1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange
mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
c'est bonnet blanc/blanc bonnet Effectivement, c'est comme $A:$IV
Hervé.
"AV" a écrit dans le message news:
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
AV
ChrisV
c'est bonnet blanc/blanc bonnet
Heu... fait pas très clean quand même... :-(
Sub zaza() On Error Resume Next Set derC = Cells.Find("*", , , , , xlPrevious) Set preC = Cells.FindNext(derC) If Err.Number <> 0 Then MsgBox "Aucune saisie présente !" Else If derC.Address <> preC.Address Then MsgBox preC.Address & ":" & derC.Address Else: MsgBox preC.Address End If End If Set derC = Nothing Set preC = Nothing End Sub
ChrisV
"Hervé" a écrit dans le message de news:
c'est bonnet blanc/blanc bonnet Effectivement, c'est comme $A:$IV
Hervé.
"AV" a écrit dans le message news:
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
AV
c'est bonnet blanc/blanc bonnet
Heu...
fait pas très clean quand même... :-(
Sub zaza()
On Error Resume Next
Set derC = Cells.Find("*", , , , , xlPrevious)
Set preC = Cells.FindNext(derC)
If Err.Number <> 0 Then
MsgBox "Aucune saisie présente !"
Else
If derC.Address <> preC.Address Then
MsgBox preC.Address & ":" & derC.Address
Else: MsgBox preC.Address
End If
End If
Set derC = Nothing
Set preC = Nothing
End Sub
ChrisV
"Hervé" <hmsilve@wanadoo.fr> a écrit dans le message de news:
O5zT4ZJhFHA.576@TK2MSFTNGP15.phx.gbl...
c'est bonnet blanc/blanc bonnet
Effectivement, c'est comme $A:$IV
Hervé.
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message news:
OPF5ZkIhFHA.3656@TK2MSFTNGP09.phx.gbl...
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre
de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est
$1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange
mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
Sub zaza() On Error Resume Next Set derC = Cells.Find("*", , , , , xlPrevious) Set preC = Cells.FindNext(derC) If Err.Number <> 0 Then MsgBox "Aucune saisie présente !" Else If derC.Address <> preC.Address Then MsgBox preC.Address & ":" & derC.Address Else: MsgBox preC.Address End If End If Set derC = Nothing Set preC = Nothing End Sub
ChrisV
"Hervé" a écrit dans le message de news:
c'est bonnet blanc/blanc bonnet Effectivement, c'est comme $A:$IV
Hervé.
"AV" a écrit dans le message news:
J'ai testé avec valeur en A1 et en IV65536 et le retour est sans lettre de
colonne ? ne devrait-il pas être $A$1:$IV$65536 ? alors qu'il est $1:$65536
??? bizarre
Exact, j'avais constaté (mais j'ai pas de réponse) ce "phénomène" étrange mais
bon ...$A$1:$IV$65536 ou $1:$65536 c'est bonnet blanc/blanc bonnet
AV
AV
fait pas très clean quand même... :-(
Hum.hum pour la Sub zaza() avec le FindNext Test : cellules renseignées : A1 - B3 - C2 Réponse attendue : A1:C3 Réponse retournée : A1:B3
Là c'est "bonnet noir" ! ;-) AV
fait pas très clean quand même... :-(
Hum.hum pour la Sub zaza() avec le FindNext
Test : cellules renseignées :
A1 - B3 - C2
Réponse attendue : A1:C3
Réponse retournée : A1:B3