code pour dépasser la colonne Z

  • Initiateur de la discussion Initiateur de la discussion Batiscaf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Batiscaf

XLDnaute Occasionnel
Bonjour tout le monde,

Aujourd'hui mon problème est assez simple mais j'ai un trou de mémoire est je trouve pas comment retomber sur l'astuce dans les archives du forum.

Voilà le code que j'ai écrit :

c = Range('IV1').End(xlToLeft).Column
titre = 'N° PB'
For i = 15 To c
L1 = Chr$(Asc('A') - 1 + i)
If Trim$(Range(L1 & '1')) = titre Then
Range('A1:IV' & nblig).Sort Key1:=Range(L1 & '1'), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.AutoFilter Field:=i, Criteria1:='<>'
Exit For
End If
Next i


Je suis bloqué dès que ma colonne 'N° PB' se trouve après la colonne Z puisque la valeur de L1 devient '[' au lieu de 'AA'.

Sans doute vous rappelez vous l'astuce pour récupérer les noms de colonnes à partir de 'AA' et +

Merci de votre aide.

Batiscaf.
 
Salut,

voici une tite modification , à toi de voir :
il doit y avoir mieux mais moi je n'ai que ça sous la main en ce moment ;-)
....
For i = 15 To c
Cells(1, i).Activate
L1 = Left(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
....




Patrick
 
Bonsoir,

J'ai fait une petite moulinette un jour pour palier à ce genre de déconvenue.
La numéraotation des Lettres va de 65 à 91 soit de A à Z
Si tu passes ce chiffre de 91, le caractères dont tu parles apparait et crée une erreur car le code attends AA et non [

c = Range('IV1').End(xlToLeft).Column
titre = 'N° PB'
For i = 15 To c

' Voila la façon de contourner le souci
if (Asc('A') - 1 + i) > 91 then
L1 = 'A' & Chr$(Asc('A') - 26 + i)
else
L1 = Chr$(Asc('A') - 1 + i)
endif

If Trim$(Range(L1 & '1')) = titre Then
Range('A1:IV' & nblig).Sort Key1:=Range(L1 & '1'), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.AutoFilter Field:=i, Criteria1:='<>'
Exit For
End If
Next i

Bonne utilisation

Vincent
 
Bonjour Humansoft, pat1545, le forum,


Et bien les 2 solutions me vont.

Celle de pat1545 : ok du premier coup.

Celle de Humansoft : il a fallu que je rentre ce code pour que ma macro fonctionne :

If (Asc('A') - 1 + i) > 90 Then
L1 = 'A' & Chr$(Asc('A') - 27 + i)
Else
L1 = Chr$(Asc('A') - 1 + i)
End If


Merci à tous les 2.

Batiscaf.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
402
Réponses
8
Affichages
916
Réponses
1
Affichages
1 K
Retour