Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA attribuer des constantes à plusieurs colonnes

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

Fabien35200

XLDnaute Nouveau
Bonjour à tous,


Je cherche à attribuer des constantes à plusieurs colonnes afin de pouvoir les modifier au début du programme si mon tableau venait à évoluer.
Par exemple sur cette ligne de code :
VB:
wkA.Worksheets("Feuil1").Cells(h, 1).Value = .Cells(j, 2).Value

la valeur " 1 " dans " Cells(h, 1) " représente la colonne A.
Si la colonne A vient à être deplacer ,j aimerai que l ensemble de mon code s adapte en fonction de la constante.
Merci à tous pour votre aide.
 
Solution
C
Bonjour Fabien35200

Les constantes ne sont pas la solution, comme le nom l'indique une constante est une valeur figée
Certes que l'on peut modifier, mais ce n'est pas pratique

En général dans un tableau on a une ligne d'en-tête
Ce que je fais, j'utilise une fonction qui me permet de trouver la cellule contenant l'en-tête cherchée
VB:
' Fonction créée par BrunoM45 pour trouver une colonne
' Les paramètres sont les suivant :
' sFeuil  = nom de la feuille ou chercher en valeur texte
' NumLig = numéro de ligne ou chercher
' Quoi = Valeur à trouver
' Attention : Par défaut la recherche se fait sur une partie du contenu de la cellule
'
Function ColFind(sFeuil As String, NumLig As Integer, Quoi As Variant)
  On Error Resume Next
  With...
Bonjour Fabien35200

Les constantes ne sont pas la solution, comme le nom l'indique une constante est une valeur figée
Certes que l'on peut modifier, mais ce n'est pas pratique

En général dans un tableau on a une ligne d'en-tête
Ce que je fais, j'utilise une fonction qui me permet de trouver la cellule contenant l'en-tête cherchée
VB:
' Fonction créée par BrunoM45 pour trouver une colonne
' Les paramètres sont les suivant :
' sFeuil  = nom de la feuille ou chercher en valeur texte
' NumLig = numéro de ligne ou chercher
' Quoi = Valeur à trouver
' Attention : Par défaut la recherche se fait sur une partie du contenu de la cellule
'
Function ColFind(sFeuil As String, NumLig As Integer, Quoi As Variant)
  On Error Resume Next
  With Sheets(sFeuil).Rows(NumLig)
    ColFind = 0
    ColFind = .Find(What:=Quoi, LookIn:=xlValues, LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False).Column
  End With
  On Error GoTo 0
End Function
De là, j'en déduit le numéro de colonne

Donc ton code pourrait s'écrire
Code:
Col1 = ColFind("NomFeuil",1,"Entête1Cherchée")
Col2 = ColFind("NomFeuil",1,"Entête2Cherchée")
wkA.Worksheets("Feuil1").Cells(h, Col1).Value = .Cells(j, Col2).Value

Voilà ;-)
 
Dernière modification par un modérateur:
- 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
2
Affichages
427
Réponses
5
Affichages
707
Réponses
4
Affichages
581
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
371
Réponses
1
Affichages
265
Réponses
2
Affichages
332
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…