Utilisation des plages nommées

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

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 !
 
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
 
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
 
- 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
10
Affichages
281
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
5
Affichages
232
Réponses
5
Affichages
182
Réponses
3
Affichages
193
Réponses
3
Affichages
115
Retour