Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

range et xldown

E

excalibur

Guest
Bonjour à tous,

J'ai un problème sur un truc qui m'apparaissait tout simple :

1. Dans ma feuille j'ai le texte toto en A1
2. Dans une macro j'ai écrit :
dercell1 = Range("A1").End(xlDown).Address
If dercell1 = "$A$65536" Then
dercell1 = "$A$1"
End If
3. La première fois que je rentre il trouve :
dercell1 = "$A$65536"
donc il rentre dans la boucle et fait :
dercell1 = "$A$1"
4. Je fais écrire titi dans $A$2 à l'aide de offset
5. Je rentre à nouveau dans la macro et excel trouve encore :
dercell1 = "$A$65536"
--> C'est ici que je ne comprends pas : ne devrait il pas trouver :
dercell1 = "$A$2"
et donc ne plus rentrer dans la boucle ?

Ai-je fait une erreur quelque part ?

Merci d'avance pour votre aide.

Exca.
 
N

Nicko

Guest
Salut Escalibur,

Pour ma part, j'utilise une structure de ce type:

Il est necessaire pour que cela fonctionne bien d'avoir au moins deux cellule pleine en debut de colonne

Par exemple:
A1 > NOM
A2 > Toto

Sub DerCellule()
Dim Dercell As String
Dercell = Range("A1").End(xlDown).Row 'Renvoi le N° de la derniere ligne pleine
MsgBox "La derniere cellule pleine est A" & Dercell & Chr(10) & "La prochaine cellule sera A" & Dercell + 1
Cells(Dercell + 1, 1).Value = "titi" ' Donne à la cellule suivante une Valeur (Ex: Titi)
End Sub

En esperant t'avoir depanné !
Bon courage
 
E

excalibur

Guest
Merci de ton aide Nicko,

Cependant, je savais que lorsqu'il ya deux lignes remplies ça marche.

Dans le cas que je présente au dessus, la seconde fois il y a bien deux cellules pleines au début et pourtant excel me sort : dercell1 = "$A$65536".

C'est là que je ne comprend plus.

Remarque : si je démarre sur un autre exemple avec, dès le début, les 2 premières cellules pleines ça marche.

Comment faire pour que ça marche dans mon cas?

Si vous avez une idée?

Merci.

exca.
 
O

Orelien

Guest
Bonjour,

Pour trouver la dernière cellulle, d'une colonne il vaut mieux utiliser ce genre d'instruction, ça te mets à l'abri des fantaisies de xldown... Si tu as 65535 cellules remplies, ça revient ensuite en A1. Idem pour les lignes, mais avec XlToLeft et l'indice de dernière colonne !


Range("A65536").End(xlUp).Select

Que l'épée t'apportes le force !

Orelien
 
E

excalibur

Guest
Merci pour l'idée,

Je vais essayer de creuser un peu car, malgré cela, excel me sort $A$1 au lieu de $A$2 alors qu'il y a du texte en A1 et en A2.

A bientôt.

exca.
 

Discussions similaires

Réponses
5
Affichages
256
Réponses
12
Affichages
416
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…