Je cherche =E0 identifier la derni=E8re cellule occup=E9e sur=20
une ligne. Le code est assez simple et fait appel =E0 un=20
banal : Cells(i,j) <> "".
Je viens de d=E9couvrir qu'il ne trouve rien si la colonne=20
en question est masqu=E9e ! Pourtant, la boucle est bien=20
ex=E9cut=E9e, mais lorsqu'il arrive sur la cellule non vide,=20
le test if (Cells(i,j) <> "") ne d=E9clenche pas !
Sub DerCellLigne() Dim i As Integer, MaxCol As Integer With ActiveCell For i = 0 To ActiveSheet.UsedRange.Columns.Count + ActiveSheet.UsedRange.Column - 2 If Not IsEmpty(.Offset(0, i)) Then MaxCol = i + 1 End If Next i End With MsgBox MaxCol End Sub
Tu peux également obtenir le résultat sans VBA :
pour la ligne 16 :
=MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16))
à valider en matricielle
ou mieux encore, en passant par une indirection et en mettant le numéro de ligne en A1 :
Je cherche à identifier la dernière cellule occupée sur une ligne. Le code est assez simple et fait appel à un banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne en question est masquée ! Pourtant, la boucle est bien exécutée, mais lorsqu'il arrive sur la cellule non vide, le test if (Cells(i,j) <> "") ne déclenche pas !
N'est-ce pas un bug d'Excel ?
Merci d'avance pour votre aide !
Jean-Luc
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour Jean-Luc,
Pas de problème chez moi avec ce code :
Sub DerCellLigne()
Dim i As Integer, MaxCol As Integer
With ActiveCell
For i = 0 To ActiveSheet.UsedRange.Columns.Count + ActiveSheet.UsedRange.Column - 2
If Not IsEmpty(.Offset(0, i)) Then
MaxCol = i + 1
End If
Next i
End With
MsgBox MaxCol
End Sub
Tu peux également obtenir le résultat sans VBA :
pour la ligne 16 :
=MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16))
à valider en matricielle
ou mieux encore, en passant par une indirection et
en mettant le numéro de ligne en A1 :
Je cherche à identifier la dernière cellule occupée sur
une ligne. Le code est assez simple et fait appel à un
banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne
en question est masquée ! Pourtant, la boucle est bien
exécutée, mais lorsqu'il arrive sur la cellule non vide,
le test if (Cells(i,j) <> "") ne déclenche pas !
Sub DerCellLigne() Dim i As Integer, MaxCol As Integer With ActiveCell For i = 0 To ActiveSheet.UsedRange.Columns.Count + ActiveSheet.UsedRange.Column - 2 If Not IsEmpty(.Offset(0, i)) Then MaxCol = i + 1 End If Next i End With MsgBox MaxCol End Sub
Tu peux également obtenir le résultat sans VBA :
pour la ligne 16 :
=MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16))
à valider en matricielle
ou mieux encore, en passant par une indirection et en mettant le numéro de ligne en A1 :
Je cherche à identifier la dernière cellule occupée sur une ligne. Le code est assez simple et fait appel à un banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne en question est masquée ! Pourtant, la boucle est bien exécutée, mais lorsqu'il arrive sur la cellule non vide, le test if (Cells(i,j) <> "") ne déclenche pas !
N'est-ce pas un bug d'Excel ?
Merci d'avance pour votre aide !
Jean-Luc
-- Cordialement,
Michel Gaboly http://www.gaboly.com
michdenis
Bonjour Jean-Luc,
Il y a aussi ceci :
'-------------------------- Sub DerniereColonne() Dim B As Integer With Worksheets("Feuil1") B = .Cells.Find("*", , LookIn:=xlFormulas, _ searchorder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Msgbox B End Sub '--------------------------
Salutations!
"Jean-Luc GARNIER" a écrit dans le message de news:292501c47df6$73f5c550$ Bonjour,
Je cherche à identifier la dernière cellule occupée sur une ligne. Le code est assez simple et fait appel à un banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne en question est masquée ! Pourtant, la boucle est bien exécutée, mais lorsqu'il arrive sur la cellule non vide, le test if (Cells(i,j) <> "") ne déclenche pas !
N'est-ce pas un bug d'Excel ?
Merci d'avance pour votre aide !
Jean-Luc
Bonjour Jean-Luc,
Il y a aussi ceci :
'--------------------------
Sub DerniereColonne()
Dim B As Integer
With Worksheets("Feuil1")
B = .Cells.Find("*", , LookIn:=xlFormulas, _
searchorder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
Msgbox B
End Sub
'--------------------------
Salutations!
"Jean-Luc GARNIER" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:292501c47df6$73f5c550$a401280a@phx.gbl...
Bonjour,
Je cherche à identifier la dernière cellule occupée sur
une ligne. Le code est assez simple et fait appel à un
banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne
en question est masquée ! Pourtant, la boucle est bien
exécutée, mais lorsqu'il arrive sur la cellule non vide,
le test if (Cells(i,j) <> "") ne déclenche pas !
'-------------------------- Sub DerniereColonne() Dim B As Integer With Worksheets("Feuil1") B = .Cells.Find("*", , LookIn:=xlFormulas, _ searchorder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Msgbox B End Sub '--------------------------
Salutations!
"Jean-Luc GARNIER" a écrit dans le message de news:292501c47df6$73f5c550$ Bonjour,
Je cherche à identifier la dernière cellule occupée sur une ligne. Le code est assez simple et fait appel à un banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne en question est masquée ! Pourtant, la boucle est bien exécutée, mais lorsqu'il arrive sur la cellule non vide, le test if (Cells(i,j) <> "") ne déclenche pas !
N'est-ce pas un bug d'Excel ?
Merci d'avance pour votre aide !
Jean-Luc
AV
T'as un bon point Denis car je vois que tu n'as oublié aucun des arguments de find ! ;-) AV
T'as un bon point Denis car je vois que tu n'as oublié aucun des arguments de
find !
;-)
AV
T'as un bon point Denis car je vois que tu n'as oublié aucun des arguments de find ! ;-) AV
michdenis
je vois que tu n'as oublié aucun des arguments de find !
Enfin, ceux qui étaient essentielles !
Merci AV.
;-)
"AV" a écrit dans le message de news:eetzZ$ T'as un bon point Denis car je vois que tu n'as oublié aucun des arguments de find ! ;-) AV
je vois que tu n'as oublié aucun des arguments de find !
Enfin, ceux qui étaient essentielles !
Merci AV.
;-)
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:eetzZ$gfEHA.3556@TK2MSFTNGP12.phx.gbl...
T'as un bon point Denis car je vois que tu n'as oublié aucun des arguments de
find !
;-)
AV
Pffff..... Si tout le monde comprend tout tout de suite à quoi ça sert ?
RePffff pour la "solidarité" d'Outre-Atlantique !
AV
Jean-Luc GARNIER
Merci beaucoup !
La syntaxe If Not IsEmpty(...) fonctionne très bien mais je n'ai 1) pas compris et 2) pas réussi à faire fonctionner l'autre proposition (que j'aurais pourtant préférée) =MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16)) !
Es tu sûr de cette formule, car j'obtiens un 'référence circulaire error' !..
Merci de ton aide !
Jean-Luc
-----Message d'origine----- Bonjour Jean-Luc,
Pas de problème chez moi avec ce code :
Sub DerCellLigne() Dim i As Integer, MaxCol As Integer With ActiveCell For i = 0 To ActiveSheet.UsedRange.Columns.Count +
ActiveSheet.UsedRange.Column - 2
If Not IsEmpty(.Offset(0, i)) Then MaxCol = i + 1 End If Next i End With MsgBox MaxCol End Sub
Tu peux également obtenir le résultat sans VBA :
pour la ligne 16 :
=MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16))
à valider en matricielle
ou mieux encore, en passant par une indirection et en mettant le numéro de ligne en A1 :
Je cherche à identifier la dernière cellule occupée sur une ligne. Le code est assez simple et fait appel à un banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne en question est masquée ! Pourtant, la boucle est bien exécutée, mais lorsqu'il arrive sur la cellule non vide, le test if (Cells(i,j) <> "") ne déclenche pas !
N'est-ce pas un bug d'Excel ?
Merci d'avance pour votre aide !
Jean-Luc
-- Cordialement,
Michel Gaboly http://www.gaboly.com
.
Merci beaucoup !
La syntaxe If Not IsEmpty(...) fonctionne très bien mais
je n'ai 1) pas compris et 2) pas réussi à faire
fonctionner l'autre proposition (que j'aurais pourtant
préférée) =MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16)) !
Es tu sûr de cette formule, car j'obtiens un 'référence
circulaire error' !..
Merci de ton aide !
Jean-Luc
-----Message d'origine-----
Bonjour Jean-Luc,
Pas de problème chez moi avec ce code :
Sub DerCellLigne()
Dim i As Integer, MaxCol As Integer
With ActiveCell
For i = 0 To
ActiveSheet.UsedRange.Columns.Count +
ActiveSheet.UsedRange.Column - 2
If Not IsEmpty(.Offset(0, i)) Then
MaxCol = i + 1
End If
Next i
End With
MsgBox MaxCol
End Sub
Tu peux également obtenir le résultat sans VBA :
pour la ligne 16 :
=MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16))
à valider en matricielle
ou mieux encore, en passant par une indirection et
en mettant le numéro de ligne en A1 :
Je cherche à identifier la dernière cellule occupée sur
une ligne. Le code est assez simple et fait appel à un
banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne
en question est masquée ! Pourtant, la boucle est bien
exécutée, mais lorsqu'il arrive sur la cellule non vide,
le test if (Cells(i,j) <> "") ne déclenche pas !
La syntaxe If Not IsEmpty(...) fonctionne très bien mais je n'ai 1) pas compris et 2) pas réussi à faire fonctionner l'autre proposition (que j'aurais pourtant préférée) =MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16)) !
Es tu sûr de cette formule, car j'obtiens un 'référence circulaire error' !..
Merci de ton aide !
Jean-Luc
-----Message d'origine----- Bonjour Jean-Luc,
Pas de problème chez moi avec ce code :
Sub DerCellLigne() Dim i As Integer, MaxCol As Integer With ActiveCell For i = 0 To ActiveSheet.UsedRange.Columns.Count +
ActiveSheet.UsedRange.Column - 2
If Not IsEmpty(.Offset(0, i)) Then MaxCol = i + 1 End If Next i End With MsgBox MaxCol End Sub
Tu peux également obtenir le résultat sans VBA :
pour la ligne 16 :
=MAX(NON(ESTVIDE(16:16)) * COLONNE(16:16))
à valider en matricielle
ou mieux encore, en passant par une indirection et en mettant le numéro de ligne en A1 :
Je cherche à identifier la dernière cellule occupée sur une ligne. Le code est assez simple et fait appel à un banal : Cells(i,j) <> "".
Je viens de découvrir qu'il ne trouve rien si la colonne en question est masquée ! Pourtant, la boucle est bien exécutée, mais lorsqu'il arrive sur la cellule non vide, le test if (Cells(i,j) <> "") ne déclenche pas !
N'est-ce pas un bug d'Excel ?
Merci d'avance pour votre aide !
Jean-Luc
-- Cordialement,
Michel Gaboly http://www.gaboly.com
.
AV
Tu as déjà posé une question similaire ("Recherche de la dernière colonne occupée") le 04/08/2004 ! Il y a des réponses qui attendent ton "opinion" !
AV
Tu as déjà posé une question similaire ("Recherche de la dernière colonne
occupée") le 04/08/2004 !
Il y a des réponses qui attendent ton "opinion" !