pb avec Range utilisée sur plage variable réduite à 1 ligne

  • Initiateur de la discussion Initiateur de la discussion lodam
  • 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 !

lodam

XLDnaute Occasionnel
Bonjour,

J'utilise une formule qui me permet de nommer une plage de cellule dans la feuille DATA dont la taille peut varier (la cellule A1 contient l'en-tête):

with sheets ("DATA")
.Range("A2:A" & .Range("A65536").End(xlUp).row).name = "liste_pc"
end with

Tout se passe bien si j'ai plus de 2 lignes : données en A2 et en A3
Mais si je n'ai qu'une seule ligne ça se corse car la plage n'est pas valable et ça me retourne une erreur : donnée uniquement en A2
Et c'est logique vu que la formule donne .Range("A2:A2").name = "liste_pc"
alors que cela devrait être
.Range("A2").name = "liste_pc"

Du coup, j'ai pensé à une solution qui pourrait être
- création d'une variable 't' qui serait la dernière ligne
- on utiliserait la condition if
ce qui donnerait :

t= .Range("A65536").End(xlUp).row
if t < 2 alors .range("A2:A" & t).name="liste_pc
else
.range ("A2").name="liste_pc"
end if

mais peut être avez-vous une solution plus "élégante" ou plus efficace

Merci pour vos réponses.

Bonne soirée
damien
 
Re : pb avec Range utilisée sur plage variable réduite à 1 ligne

Bonjour Lodam

si j'ai bien compris :

Code:
With Sheets("DATA")
If .Range("A2:A" & .Range("A65536").End(xlUp).Row).Cells.Count > 1 Then _
    .Range("A2:A" & .Range("A65536").End(xlUp).Row).Name = "liste_pc"
End With

bonne soirée
@+
 
Re : pb avec Range utilisée sur plage variable réduite à 1 ligne

Bonjour et merci pour cette réponse qui est plus élégante pour nommer la plage.

Mon problème reste entier car je me sers de cette plage pour l'insérer dans une listbox et cela génère une erreur

Le fichier exemple est disponible à :
Cijoint.fr - Service gratuit de dépôt de fichiers


Merci pour votre aide par avance
bonne fin de journée ( et bonnes vacances pour les Aoutiens !!)
damien
 
Re : pb avec Range utilisée sur plage variable réduite à 1 ligne

Bonjour Lodam

comprends pas trop je viens d'utiliser le code ci dessous, placé dans le module de l'USF, se déclenchant à l'initialisation, pas de message d'erreur et listbox bien alimentée...

Code:
Private Sub UserForm_Initialize()
With Sheets("DATA")
If .Range("A2:A" & .Range("A65536").End(xlUp).Row).Cells.Count > 1 Then _
    .Range("A2:A" & .Range("A65536").End(xlUp).Row).Name = "liste_pc"
End With
ListBox1.List = Range("liste_pc").Value
End Sub

peux pas accéder à ton fichier, problème de proxy. Mets peut être un exemple moins lourd en pièce jointe sur le forum, si ce code n'a pas resolu ton problème.

@+
 
Re : pb avec Range utilisée sur plage variable réduite à 1 ligne

merci pour ton aide Pierrot93
Je ne comprends pas pourquoi mon fichier est si lourd (180ko et il n'y a rien ni mise en forme?!)

J'utilise bien la même formule sauf que je passe par 2 variables : tablotemp_PF ou tablotemp_PC car j'ai plusieurs bouton_option
(le principe est qu'on choisi un type de choix (standard, standardplus et self) qui vont donner des prestations fournies et à charge différentes)


'PF = Prestations Fournies
'PC = Prestations à Charge

Dim tablotemp_PF, tablotemp_PC

------------
Private Sub OptionButton_stdp_Click()
With Sheets("DATA")
tablotemp_PF = .Range("data_liste_pf_stdp").Value
tablotemp_PC = .Range("data_liste_pc_stdp").Value
End With
creer_listbox
End Sub
-----------------

Private Sub creer_listbox()
With Calcul_devis.ListBox_PF
.ColumnCount = 1
.ColumnWidths = "150"
.List = tablotemp_PF
End With

With Calcul_devis.ListBox_PC
.ColumnCount = 1
.ColumnWidths = "150"
.List = tablotemp_PC
End With

End Sub

Merci encore
damien
 
Re : pb avec Range utilisée sur plage variable réduite à 1 ligne

Oui, j'imagine que ce n'est pas facile
mais je te remercie beaucoup d'avoir pris le temps de me répondre.
Je poursuis ce WE et reposterai mon résultat
Bonne soirée
damien
 
- 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
6
Affichages
336
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
651
Retour