Adressage en cells(Row, Column)

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 !

lebarbo

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterais utiliser une fonction de cette façon :
MaVariable = Range(Cells(1, J)).Name

Mais qui puisse marcher : )

En fait je fais un adressage d'après les numéros des lignes et colonnes et non en fonction de leur nom, exemple : A1=1,1


Merci à vous
 
Re : Adressage en cells(Row, Column)

Bonjour à tous,

Oui ok je vais être plus précis, en fait je veux récupérer le nom présent en B1, C1, D1, E1... et pour ça je fais un For J=2 to NbreColonne que j'ai acquis bien sur avant avec ce code :
Range("IV1").End(xlToLeft).Select
NbreColonne = ActiveCell.Column

donc il me faut un adressage en 1,2 ; 1,3...

J'espère avoir été plus précis...

Merciii
 
Re : Adressage en cells(Row, Column)

re

je suppose que c'est le contenu de la cellule que tu récupères (une cellule peut être "nommée" donc le terme "nom" est dangereux)

For J=2 to Range("IV1").End(xlToLeft).column
contenu=cells(1,J).value
msgbox contenu
next

doit t'afficher successivement le contenu des cellules de la ligne 1 à partir de la colonne 2
 
Re : Adressage en cells(Row, Column)

Voilà le code que j'ai simplifié pour voir le problème je ne vois pas ce qui cloche ?

Sub Nom()

Range("IV1").End(xlToLeft).Select
NbreColonne = ActiveCell.Column
Cells(65536, 2).End(xlUp).Select

NoDerniereLigne = ActiveCell.Row

NoLigne3An = NoDerniereLigne - 156

For J = 2 To NbreColonne

Entete = Cells(1, J).Value
Cells(NoLigne3An, J).Name = Entete & "_3A"

Next J

End Sub

Ce code doit donc nommer les champs de la ligne en -156 avec le nom présent dans la ligne 1

Si vous avez des idées sur le problème ?

Merci
 
Re : Adressage en cells(Row, Column)

Bonjour

je n'ai pas épluché ton code, puisqu'il marche à priori

quelques conseils :

évite les select, ils ralentissent le code et sont souvent inutiles

Sub Nom()
NbreColonne = Range("IV1").End(xlToLeft).Column
NoDerniereLigne = Cells(65536, 2).End(xlUp).Row
NoLigne3An = NoDerniereLigne - 156
For J = 2 To NbreColonne
Entete = Cells(1, J).Value
Cells(NoLigne3An, J).Name = Entete & "_3A"
Next J
End Sub

ou encore

Sub Nom()
NoLigne3An = Cells(65536, 2).End(xlUp).Row - 156
For J = 2 To Range("IV1").End(xlToLeft).Column
Entete = Cells(1, J).Value
Cells(NoLigne3An, J).Name = Entete & "_3A"
Next J
End Sub
 
Re : Adressage en cells(Row, Column)

Bonjour lebarbo, le fil,

Je viens suremment de trouver : il y avait un espace dans les noms en ligne 1 et il n'en veut pas arfffff !!!
C'est vrai: pas d'espace ou de caractères spéciaux dans les noms. Tu ne remarques pas le pb de l'espace quand tu le fais à la main car Xl ajoute les underscores. Mais en vba, c'est à toi de le faire.
J'ai rencontré ce problème.
Je vais chercher dans mes fichiers, je dois avoir une macro qui s'occupe de nettoyer les noms ( récupérés par ex dans une cellule) avant de les définir, et éviter ce genre de problèmes.

A+
 
Re : Adressage en cells(Row, Column)

Merci beaucoup pour votre aide supplémentaire...ça fait plaisir et mon code marche...et pour les select c'est vrai... merci dès fois je ne vois pas comment faire sans mettre de select exemple :

Columns("A:A").Select
Cells.Find("2006").Activate
NoLigne1erJanv = ActiveCell.Row - 1

Comment je peux rechercher le mot "2006" dans la colonne A:A ??? ça doit être tout simple mais il y a tjrs des petits trucs qui m'échappent

Merci
 
Re : Adressage en cells(Row, Column)

bonsoir

attention ton code va chercher 2006 dans l'ensemble de la feuille meme si seulement la colonne A est sélectionné.

cells... = collection des cellules de la feuilles (soit toutes les cellules)

pour rechercher 2006 seulement dans la colonne A :

Columns("A:A").Find("2006").Activate

salut
 
Re : Adressage en cells(Row, Column)

re


on ajoute généralement à ce type de code un test pour eviter le bug si 2006 n'est pas trouvé en colonne A, par exemple :

Code:
Dim c As Range

Set c = Columns("A:A").Find("2006")

If Not c Is Nothing Then
    c.Activate
End If

salut
 
Re : Adressage en cells(Row, Column)

Salut à tous
Code:
Sub Nom()
Dim X as integer
dim NoLigne3An as long

NoLigne3An = Cells(65536, 2).End(xlUp).Row - 156
For X = 2 To Range("IV1").End(xlToLeft).Column
Cells(NoLigne3An, X).Name = replace(Cells(1, X) & "_3A"," ","_")
Next X
End Sub
J'ai mis la macro d'ERIC S à ma sauce 😉

A+
 
Dernière édition:
- 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
5
Affichages
912
Réponses
7
Affichages
367
Réponses
12
Affichages
1 K
Retour