Plage de données avec colonne variable

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

V

Vinvol

Guest
Bonjour à ceux qui savent !

J'ai beau avoir l'impression de m'améliorer jour après jour, j'ai encore de sacrées lacunes... D'où cette nouvelle question.

J'ai une cellule avec une valeur quelconque, disons "Ours".
J'ai une liste de noms d'animaux sur une ligne (sans doublon).
Une formule (qui a priori marche) me permet de trouver dans cette ligne, la cellule où se trouve le mot "Ours" (ce qui la définit en variable)

Ce que j'aimerais, c'est que cette cellule indique la colonne finale d'une plage de donnée qui commencerait en B3 et finirait en "colonne du mot Ours"3.
Mais là, je sèche.

Quelqu'un pour m'aider ?

Merci,
Vincent
 

Pièces jointes

Re : Plage de données avec colonne variable

Bonjour Fred0o et R@chid,

Tout d'abord merci pour vos réponses !

Je viens de tester vos deux propositions, mais je me retrouve a chaque fois avec une message "Compile error: Syntax error"

Que ce soit :
Set r =Sheets("Sheet1").Range("B3:B" & Match($A$14,$B$1:$H$1,0))+1
ou
Set r =Offset(Sheet1!$B$1,,,,Match(Sheet1!$A$14,Sheet1!$B$1:$H$1,0))

ça ne lui plait pas...

Si vous avez une autre idée...

Merci,
Vincent
 
Re : Plage de données avec colonne variable

Re-bonjour à tous,

Voici comment tu peux réécrire ta macro (cela fonctionne chez moi) :
VB:
Sub Test()
    Dim mot As String, r As Range
    mot = Sheets("Sheet1").Range("A14")
    Set r = Sheets("Sheet1").Range("B3:B" & Sheets("Sheet1").Range("A1:AA1").Find(mot).Column)
End Sub

A+
 
Re : Plage de données avec colonne variable

Re-bonjour,

Autant pour moi, je n'ai pas du être suffisamment clair dans mon explication. Et d'avoir compléter les lignes 3 à 5 dans mon fichier test pouvait induire en erreur. Désolé.

En fait, ton code marche pour définir "r" en colonne, de B3 vers B?
Mais j'aimerais qu'il soit définit en ligne : de B3 vers ?3

Dans mon exemple, Ours est en F1. Donc r = B3:F3

Evidemment, écrire [...].Range("B3:3" & Sheets[...] ne marche pas, ça serait trop facile.
Si tu connais la bonne syntaxe...

Merci,
Vincent
 
Re : Plage de données avec colonne variable

Je partais vers une solution du type !
Sub Test()

Set mot = Sheets("Sheet1").Range("A14")
Set r = Sheets("Sheet1").Range("A:AA").Find(mot)
Set c = r.Column
Set b = Sheets("Sheet1").Range(Cells(3, 2), Cells(3, c))
b.FormulaR1C1 = "=R[-2]C"

End Sub

"c" étant supposé être le numéro de colonne.
r.column bogue. Si c'est corrigé, vous pensez que ça pourrait marcher comme ça ?

Merci,
Fabrice
 
Re : Plage de données avec colonne variable

Re-bonjour vinvol,

En fait j'avais mal compris et mal codé. Ce coup-ci, je ne devrais pas être loin de la vérité :
VB:
Sub Test()
    Dim mot As String, r As Range
    mot = Sheets("Sheet1").Range("A14")
    Set r = Sheets("Sheet1").Range(Cells(3, 2), Cells(3, Sheets("Sheet1").Range("A1:AA1").Find(mot).Column))
End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
520
D
Réponses
4
Affichages
432
DidPouAxi
D
Retour