Utilisation des plages nommées

benoitxi

XLDnaute Nouveau
Bonjour à tous,

J’ai crée plusieurs macro dans un ficher excel pour faire de la mise en forme de données.
J’ai basé tout mon code avec les références aux lettres des colonnes (A,B,C,D...)
Cependant ce n'est pas super quand quelqu'un insère une colonne ou en supprime une.
Du coup j'ai tout repris en définissant des noms pour chaque colonne.
J'aimerais utiliser ces noms à la place des lettres mais je ne comprends pas trop la structure à utiliser.
Voici un exemple :

Sub Concatener()
For i = 2 To Range("AH" & Rows.Count).End(xlUp).Row
Range("B" & i) = Range("AH" & i) & Range("AI" & i) & Range("AL" & i)
Next
End Sub

je comptais juste remplacer les lettres par les noms des colonnes définis mais ça ne fonctionne pas.

Sub Concatener()
For i = 2 To Range("Nom" & Rows.Count).End(xlUp).Row
Range("Concat" & i) = Range("Nom" & i) & Range("Prénom" & i) & Range("Date_nai" & i)
Next
End Sub

Est est ce que qqn peut m'aider ou m'indiquer un lien qui explique comment utiliser les plages nommées et leur structure.
Merci !
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Essayez ceci:
VB:
With Range("PlageNommée")
        For i = 2 To .Rows.Count
            .Cells(i, indexDeColonne) = .Cells(i, AutreIndexDeColonne) & .Cells(i, EncoreUnAutreIndexDeColonne)
        Next
End With

Précision: les numéros de lignes et colonne sont relatifs.

Vba offre de multiples façons de faire cela, tout dépend ensuite des situations et des goûts.

bonne soirée
 

Paf

XLDnaute Barbatruc
Bonjour,

une solution pourrait consister à utiliser Range("Nom").Column pour obtenir le N° de colonne.

Mais cela oblige à modifier les range en Cells:
VB:
Col1=Range("Nom").Column
Col2=Range("Concat").Column
For i = 2 To Cells(Cells.Rows.Count, Col1).End(xlUp).Row   'Range("Nom" & Rows.Count).End(xlUp).Row
      Cells(i,Col2) = cells(i,col1) & .....
      'Range("Concat" & i) = Range("Nom" & i) & Range("Prénom" & i) & Range("Date_nai" & i)
Next

A+

Edit : Bonjour Roblochon
 

Discussions similaires

Réponses
6
Affichages
233
Réponses
4
Affichages
205
Réponses
2
Affichages
219

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972