VBA déterminer une plage variable

Metil

XLDnaute Nouveau
Bonjour à tous,

Je suis sur la création d'un userform permettant de contrôler des données. J'ai réussi à trouver toutes les macros que je souhaitais, mais je bloque sur un problème depuis quelques jours.

Mon USF permet d'aller récupérer des données dans un autre Excel, de les copier dans mon onglet, de mettre un filtre auto dans la première ligne de mon tableau (de la case B5 à la dernière case pleine de la ligne 5) et pleins d'autres choses encore.

J'ai fait plusieurs macro qui travaillent sur une plage de donnée fixe (partant de B5 et allant jusqu'à AK9000 et quelques), mais je souhaiterais rendre cette plage "variable", la cellule de départ est toujours la même B5, mais le nombre de colonnes peut changer ainsi que le nombre de lignes et pour pimenter le tout, certaines colonnes ont des cases vides (une macro est chargée de les colorier en bleu).

donc au lieu d'avoir la ligne :
Code:
  Range("B5:AK9170").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 5
j'aimerai avoir quelque chose qui me sélectionne automatiquement ma plage de cellules. Comme je sais que ma colonne B5 est toujours complète, j'ai essayé de faire divers types de ranges, de sélectionner en partant de B5 en faisant un xltodown et un xltoright mais j'y arrive pas ...

J'espère que je suis claire :s parce que là je m'y perds moi même^^ Si il faut je vous joindrais le fichier avec les macros et un fichier de données "test" (j'en ai crée un car travailler sur 9000 lignes sur un PC antique, c'est lourd^^).
 

juju_69

XLDnaute Occasionnel
Re : VBA déterminer une plage variable

Si on considère que la ligne 5 et la colonne B ont toujours une valeur :

Sub test()
Dim i As Integer, j As Integer

i = [B65536].End(xlUp).Row
j = [IV5].End(xlToLeft).Column

Range(Cells(5, 2), Cells(i, j)).SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 5

End Sub
 

Metil

XLDnaute Nouveau
Re : VBA déterminer une plage variable

J'aimerai justement evité d'avoir à fixer une de ces informations :(
Le nombre de ligne est ce qui va changer le plus souvent, mais le nombre de colonnes est en effet moins sujet aux variations.

La plage des en têtes des colonnes est B5:AK5
En sélectionnant cette plage on peut faire un xlToDown ?
 

juju_69

XLDnaute Occasionnel
Re : VBA déterminer une plage variable

Je me suis peut être mal exprimé, on est d'accord tu n'as pas le N° de ligne max ayant une valeur mais tu dois bien avoir une des colonnes sur ta ligne qui a toujours quelques chose non ? (exemple les noms des utilisateurs)
 

Metil

XLDnaute Nouveau
Re : VBA déterminer une plage variable

C'est là le hic^^

Le nombre de colonnes je peux le déterminer à l'avance, mais le nombre de lignes non ... En fait je récupère des infos de SAP via une requète, donc je sais combien de colonnes j'ai avant de faire cette requète (car c'est le nombre de critères que je sélectionne), par contre le nombre de lignes varie énormément !
Ma colonne B pourrait servir de référence car c'est l'une des colonnes qui est obligatoirement complète, mais je ne peux savoir à l'avance combien de lignes elle va comporter.

J'ai testé le code que tu m'as donné plus haut, il marche très bien :) Un grand merci ! (je ne maitrise pas encore très bien les variables, mais ça va venir :p)
 

juju_69

XLDnaute Occasionnel
Re : VBA déterminer une plage variable

ok en fait ce que je voulais savoir c''était çà : "Ma colonne B pourrait servir de référence car c'est l'une des colonnes qui est obligatoirement complète". Donc le code plus haut colle avec ta demande
@ +
 

Discussions similaires

Réponses
1
Affichages
170
Compte Supprimé 979
C