|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Membre à l'essai
![]() Date d'inscription: décembre 2009
Messages: 49
|
Bonjour à tous, c'est encore moi, mais ce matin je tombe sur pleins d'os ... x_x
Alors pour faire simple, je cherche à selectionner une plage de cellule non vide sur ma colonne A... Simple non? Oui ! grâce à : Code :
Sheets("Divers").Range("A1:A" & _ Range("A65535").End(xlUp).Row).Name = "yoyo" Mon problème : Sur cette plage, les cellules contiennent la formule ! Code :
=(Annuaire!A2)&" "&GAUCHE(Annuaire!B2)&SI(ESTERREUR(TROUVE("-";Annuaire!B2;1));"";STXT(Annuaire!B2;TROUVE("-";Annuaire!B2;1)+1;1)) J'ai fais cette formule de A1 jusqu'à A600 sachant qu'il n'y à que 500 personnes, mais ça permet de ne pas changer le macros à chaques embauches et départ. Petite précision, je nomme la plage yoyo dans le but de l'utiliser dans une liste de validation... Et je ne veux pas de "blanc" or dans mon exemple, il y a 100 espaces blancs. Car Range utilise value, alors que text me permettrais (je penses) de faire référence à ce qui est affiché, c'est à dire rien de 500 à 600... J'espère me faire comprendre Si vous avez une solution, ou une meilleure façon de faire, pour en gros, avoir une liste nom - prénom, puis prendre le nom + initiale prénom, puis avoir cette plage nommée, sachant que la plage nommée devra se modifier elle même lorsque des nom s'ajouteront ou s'enleveront... |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
Ben c'est pas certain ça
Je récapitule, sur ta feuille Divers, la formule qui extrait le nom et l'initiale basé sur la feuille Annuaire. Tu utilise plus de ligne sur ta feuille Divers que Annuaire => ligne vide dans ta feuille Divers quand elles se réfèrent à des lignes vides de la feuille Annuaire. Si c'est bien ça tu peux utiliser le nombre de ligne de ta feuille Annuaire pour définir la plage de ta feuille Divers. Exemple: Code :
Dim DerLig as long DerLig = Sheets("Annuaire").cells(columns(1).cells.count,1).End(xlUp).Row 'Plus ou moins le même principe que tu as utilisé dans la ligne ci-dessous Sheets("Divers").Range("A1:A" & DerLig).Name = "yoyo" A+
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
#3 (permalink) |
|
Membre à l'essai
![]() Date d'inscription: décembre 2009
Messages: 49
|
Alors là, je dis bravo !
![]() Je ne savais pas du tout que l'on pouvait faire ça, c'est biiiiiiiiiiiiiiien plus simple que ce que j'avais en tête ! J'ai rajouter un petit .row-1 pour ne pas compter le titre de colonne... Je vais juste te demander un dernier truc : dans cells(columns(1).cells.count,1) Le premier 1 sert à définir la colonne A, mais le deuxième aussi puisque normalement cells(row, column) non? En tout cas ça fonctionne nickel, je veux juste savoir comment |
|
|
|
|
|
#4 (permalink) |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
Pour répondre à ta question...
On aurait pu écrire en xl2003: Code :
DerLig = Sheets("Annuaire").cells(65536,1).End(xlUp).Row En fait Columns(1).cells.count renvoi 65536 si tu es en xl2003 Le numéro de cette colonne n'a pas d'importance en fait, contrairement au numéro de colonne associée à Cells. En espérant avoir été clair ![]() A+
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
#6 (permalink) |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
Raison de plus pour utiliser Columns(1).cells.count, ça t'éviteras des mauvaises surprises si ta feuille dépasse les 65536 lignes
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
![]() |
||
[XL-2000] Utiliser la propriété text de Range
|
||
| Outils de la discussion | |
|
|