Cells() fonctionne-t-elle sur des cellules masquées ?
4 réponses
Jean-Luc GARNIER
Bonjour,
J'utilise le code (simplissime) suivant pour d=E9tecter la=20
derni=E8re colonne non vide dans une ligne:
------------
' D=E9tection de la colonne de la derni=E8re cellule non vide
cp =3D Cells(i, "AH").Column
cd =3D Cells(i, "IV").Column
For j =3D cd To cp Step -1
If Cells(i, j).Text <> "" Then
col =3D Cells(i, j).Column
Exit For
End If
Next j
------------
Je cherche donc des colonnes IV =E0 AH (reverse), mais ce=20
code ne fonctionne pas si certaines colonnes sont masqu=E9es=20
(et qu'elles contiennent une valeur =E9videmment).
Est-ce un comportement normal ou y a-t-il une autre=20
m=E9thode pour r=E9aliser ce que je fais ?
Plutôt qu'une boucle, essaye ça : i = 1 MsgBox Evaluate("max(not(isblank(AH" & i & ":IV" & i & "))*column(AH" & i & ":IV" & i & "))")
AV
BJ
Salut Jean - Luc Avec ce que je comprends voici col va renvoyer la derniere colonne utilisée ajoute un for pour les lignes i Bruno
i = numéroligne col = Cells(i, 256).End(xlToLeft).Column
Jean-Luc GARNIER a écrit dans le message : c2ed01c47a39$2d8ac450$ Bonjour,
J'utilise le code (simplissime) suivant pour détecter la dernière colonne non vide dans une ligne: ------------ ' Détection de la colonne de la dernière cellule non vide cp = Cells(i, "AH").Column cd = Cells(i, "IV").Column
For j = cd To cp Step -1 If Cells(i, j).Text <> "" Then col = Cells(i, j).Column Exit For End If Next j ------------
Je cherche donc des colonnes IV à AH (reverse), mais ce code ne fonctionne pas si certaines colonnes sont masquées (et qu'elles contiennent une valeur évidemment).
Est-ce un comportement normal ou y a-t-il une autre méthode pour réaliser ce que je fais ?
Merci d'avance pour votre aide !
Jean-Luc
Salut Jean - Luc
Avec ce que je comprends voici
col va renvoyer la derniere colonne utilisée
ajoute un for pour les lignes i
Bruno
i = numéroligne
col = Cells(i, 256).End(xlToLeft).Column
Jean-Luc GARNIER <anonymous@discussions.microsoft.com> a écrit dans le
message : c2ed01c47a39$2d8ac450$a301280a@phx.gbl...
Bonjour,
J'utilise le code (simplissime) suivant pour détecter la
dernière colonne non vide dans une ligne:
------------
' Détection de la colonne de la dernière cellule non vide
cp = Cells(i, "AH").Column
cd = Cells(i, "IV").Column
For j = cd To cp Step -1
If Cells(i, j).Text <> "" Then
col = Cells(i, j).Column
Exit For
End If
Next j
------------
Je cherche donc des colonnes IV à AH (reverse), mais ce
code ne fonctionne pas si certaines colonnes sont masquées
(et qu'elles contiennent une valeur évidemment).
Est-ce un comportement normal ou y a-t-il une autre
méthode pour réaliser ce que je fais ?
Salut Jean - Luc Avec ce que je comprends voici col va renvoyer la derniere colonne utilisée ajoute un for pour les lignes i Bruno
i = numéroligne col = Cells(i, 256).End(xlToLeft).Column
Jean-Luc GARNIER a écrit dans le message : c2ed01c47a39$2d8ac450$ Bonjour,
J'utilise le code (simplissime) suivant pour détecter la dernière colonne non vide dans une ligne: ------------ ' Détection de la colonne de la dernière cellule non vide cp = Cells(i, "AH").Column cd = Cells(i, "IV").Column
For j = cd To cp Step -1 If Cells(i, j).Text <> "" Then col = Cells(i, j).Column Exit For End If Next j ------------
Je cherche donc des colonnes IV à AH (reverse), mais ce code ne fonctionne pas si certaines colonnes sont masquées (et qu'elles contiennent une valeur évidemment).
Est-ce un comportement normal ou y a-t-il une autre méthode pour réaliser ce que je fais ?
Merci d'avance pour votre aide !
Jean-Luc
Jean-Luc GARNIER
Désolé de n'avoir pas répondu plus tôt, j'ai un peu changé de bug.. :-)
Nous avons trouvé une solution intermédiaire qui fait intervenir IsEmpty(), fonction qui ne semble pas affectée par l'état affichéé/cachée de la colonne.. En gros, c'est la même formulation que toi, mais avec NOT(IsEmpty())..
Merci pour ton aide !
Jean-Luc
-----Message d'origine----- Plutôt qu'une boucle, essaye ça : i = 1 MsgBox Evaluate("max(not(isblank(AH" & i & ":IV" & i & ")) *column(AH" & i &
":IV" & i & "))")
AV
.
Désolé de n'avoir pas répondu plus tôt, j'ai un peu changé
de bug.. :-)
Nous avons trouvé une solution intermédiaire qui fait
intervenir IsEmpty(), fonction qui ne semble pas affectée
par l'état affichéé/cachée de la colonne.. En gros, c'est
la même formulation que toi, mais avec NOT(IsEmpty())..
Merci pour ton aide !
Jean-Luc
-----Message d'origine-----
Plutôt qu'une boucle, essaye ça :
i = 1
MsgBox Evaluate("max(not(isblank(AH" & i & ":IV" & i & "))
*column(AH" & i &
Désolé de n'avoir pas répondu plus tôt, j'ai un peu changé de bug.. :-)
Nous avons trouvé une solution intermédiaire qui fait intervenir IsEmpty(), fonction qui ne semble pas affectée par l'état affichéé/cachée de la colonne.. En gros, c'est la même formulation que toi, mais avec NOT(IsEmpty())..
Merci pour ton aide !
Jean-Luc
-----Message d'origine----- Plutôt qu'une boucle, essaye ça : i = 1 MsgBox Evaluate("max(not(isblank(AH" & i & ":IV" & i & ")) *column(AH" & i &
":IV" & i & "))")
AV
.
AV
Nous avons trouvé une solution intermédiaire qui fait intervenir IsEmpty(), fonction qui ne semble pas affectée par l'état affichéé/cachée de la colonne..
Pas plus que ce que je t'ai proposé (que tu n'as apparemment pas testé) !
la même formulation que toi, mais avec NOT(IsEmpty())..
C'est vrai que NOT(IsEmpty est nettement plus court que not(isblank ;-)
Par ailleurs il me semble que ton "affaire" est assez confuse car tu voulais initialement une solution macro et maintenant, dans ton fil le plus récent, tu signales une référence circulaire ce qui n'a rien à voir avec une solution macro Bon...enfin...tu fais comme tu veux et quand tu veux...
AV
Nous avons trouvé une solution intermédiaire qui fait
intervenir IsEmpty(), fonction qui ne semble pas affectée
par l'état affichéé/cachée de la colonne..
Pas plus que ce que je t'ai proposé (que tu n'as apparemment pas testé) !
la même formulation que toi, mais avec NOT(IsEmpty())..
C'est vrai que NOT(IsEmpty est nettement plus court que not(isblank
;-)
Par ailleurs il me semble que ton "affaire" est assez confuse car tu voulais
initialement une solution macro et maintenant, dans ton fil le plus récent, tu
signales une référence circulaire ce qui n'a rien à voir avec une solution macro
Bon...enfin...tu fais comme tu veux et quand tu veux...
Nous avons trouvé une solution intermédiaire qui fait intervenir IsEmpty(), fonction qui ne semble pas affectée par l'état affichéé/cachée de la colonne..
Pas plus que ce que je t'ai proposé (que tu n'as apparemment pas testé) !
la même formulation que toi, mais avec NOT(IsEmpty())..
C'est vrai que NOT(IsEmpty est nettement plus court que not(isblank ;-)
Par ailleurs il me semble que ton "affaire" est assez confuse car tu voulais initialement une solution macro et maintenant, dans ton fil le plus récent, tu signales une référence circulaire ce qui n'a rien à voir avec une solution macro Bon...enfin...tu fais comme tu veux et quand tu veux...