Probleme RANGE en VBA

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

tydher

XLDnaute Nouveau
Bonjour à tous,

Apres avoir recuperer des valeurs dans mes variables je souhaite faire un traitement en utilisant un Range :

Code:
Range("indexG:indexQte,indexJalons:indexJalons,indexCI:indexRemarques-1,indexI:indexCE+1").Select 
    With Selection 
        .HorizontalAlignment = xlCenter 
        .VerticalAlignment = xlCenter 
        .Orientation = 0 
        .AddIndent = False 
        .MergeCells = False 
    End With

Cependant, il ne marche pas et j'ai une erreur de type :
La methode Range de l'objet Global à échoué

En fait, pour apporter plus de détails, avant le Range, j'ai une boucle qui me récupere le numéro de la colonne, car selon les feuilles Excel, les colonnes ne sont pas aux mêmes endroits.

Il faudrait donc que j'associe la cellule A1, par exemple, à ma variable indexX.
Sauf que si je fait :

Code:
indexX = Cells(1,i)
l'index récupere ce qui se trouve dans la cellule et non l'emplacement

J'ai modifié le type de mes variables en String et j'ai rajouté dans ma boucle :

Code:
...
indexG = Cells(1,i).Address
...

Cependant j'en suis toujours au même point.
Erreur : la methode Range de l'objet _globlal a echoué

Votre aide est la bienvenue
 
Re : Probleme RANGE en VBA

Cela ne marche pas. Dans ma boucle quand j'insere une ligne tel que

Code:
For j = 1 To nombreColonne
    entete = Cells(1, j).Value
   
   If (entete = "G") Then
     Set indexG = Cells(1, i)

il me met que l'objet est requis
 
Re : Probleme RANGE en VBA

Voila la partie la plus interessante. Mes variables sont des String
Je souhaite récuperer les en-tete de colonne dans des variables (les adresses d'en tete) et ensuite de defusionner ces en-tete
En commentaire apparait un peu tout ce que j'ai testé

Code:
i = 1
For j = 1 To nombreColonne
    entete = Cells(1, j).Value
   
   If (entete = "G") Then
     indexG = Cells(1, i).Address
     ElseIf (entete = "QTE") Then indexQte = Cells(1, i).Address
     ElseIf (entete = "J") Then indexJ = Cells(1, i).Address
     ElseIf (entete = "CI") Then indexCI = Cells(1, i).Address
     ElseIf (entete = "Engagement") Then indexEngagement = Cells(1, i).Address
     ElseIf (entete = "REMARQUES") Then indexRemarques = Cells(1, i - 1).Address
     ElseIf (entete = "CE") Then indexCE = Cells(1, i).Address
    End If
    i = i + 1
Next j
'------------------------------------------------------------------------
'UNMERGE des cellules de la 1ere ligne
'-----------------------------------------------------------------------
'Range("indexG:indexQte,indexJ:indexJ,indexCI:indexEngagement,indexRemarques:indexCE").Select
'Range(indexG, indexQte).Select
'Range(Cells(indexG), Cells(indexQte)).Select
Set c = Union([indexG:indexQte], [indexJalons:indexJalons], [indexCI:indexEngagement], [indexRemarques:indexCE]).Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Orientation = 0
        .AddIndent = False
        .MergeCells = False
    End With
 
Re : Probleme RANGE en VBA

Pour récapituler j'ai donc :

Code:
i = 1
For j = 1 To nombreColonne
    entete = Cells(1, j).Value
   
   If (entete = "G") Then
    set  indexG = Cells(1, i)
     ElseIf (entete = "QTE") Then set indexQte = Cells(1, i)
     ElseIf (entete = "J") Then set  indexJ = Cells(1, i)
     ElseIf (entete = "CI") Then set indexCI = Cells(1, i)
     ElseIf (entete = "Engagement") set Then indexEngagement = Cells(1, i)
     ElseIf (entete = "REMARQUES") set Then indexRemarques = Cells(1, i - 1)
     ElseIf (entete = "CE") Then set indexCE = Cells(1, i)
    End If
    i = i + 1
Next j
'------------------------------------------------------------------------
'UNMERGE des cellules de la 1ere ligne
'-----------------------------------------------------------------------
Union(Range(indexG, indexQte), Range(indexJ, indexJ), Range(indexCI, indexEngagement), Range(indexRemarques, indexCE)).Select
With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Orientation = 0
        .AddIndent = False
        .MergeCells = False
    End With
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Réponses
2
Affichages
511
Réponses
3
Affichages
673
Retour