Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion marti
  • 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 !

M

marti

Guest
Bonjour

Je suis débutant en VBA et dans un tuto que j'ai trouver il y ce code que je comprend pas ... Je m'explique , ceci est inscrit dans insertion > nom > definir c'est je pense une plage de donnée ... Mon problème est que je souhaite la modifier mais quand je le fait, plus rien ne suis quand je compile.

Quelqu’un pourrait il m'aider ?

=DECALER(bd!$A$2;;;NBVAL(bd!$A:$A)-1;4)

Merci d'avance
 
Re : Code VBA

Bonjour marti,

Il s'agit apparemment d'une plage nommée "dynamique": dans ton fichier, au départ de la cellule A2 de la feuille "bd", on "redéfinit" une plage qui s'étend du point de départ vers le bas sur un nombre de lignes correspondant au nombre de cellules non-vides de la colonne A (moins le titre, vraisemblablement) et qui s'étend également sur 4 colonnes (la colonne en cours + 3 colonnes vers la droite, soit de la colonne A à la colonne D)
 
Re : Code VBA

Bonjour marti, salut Modeste 🙂

Si l'on veut utiliser cette formule en VBA, il faut utiliser la syntaxe anglaise.

Cette macro définit le nom Plage :

Code:
Sub Test()
ThisWorkbook.Names.Add "Plage", "=OFFSET(bd!$A$2,,,COUNTA(bd!$A:$A)-1,4)"
End Sub
A+
 
Re : Code VBA

Je suis d'accord cela fonctionne, mais je ne comprend toujours pas pourquoi quand je modifie la plage cela ne fonctionne plus.

Voici le tuto en question !

Help Me

MErci d'avance
 

Pièces jointes

Re : Code VBA

Bonjour à tous, Modeste, Job 75

@marti
On peut continuer comme cela pendant longtemps, tant que tu ne montres pas ton fichier. Ce qui est sûr, c'est que que l'erreur ne vient pas du tuto de JB. Donc cela vient de ton fichier. Comment veux-tu qu'on devine où tu as fait l'erreur ?

Mikeo
 
Re : Code VBA

Re,

Vous avez renommé la feuille "BD" en "base", cela ne pose aucun problème.

Le nom défini BD s'est redéfini automatiquement par :

Code:
=DECALER(base!$A$2;;;NBVAL(base!$A:$A)-1;4)
Il ne faut surtout pas changer le nom ("BD") de ce nom, le code de Boisgontier ne fonctionnerait plus.

Il faudrait nous dire exactement ce qui vous chiffonne 🙂

A+
 
Re : Code VBA

Re-bonjour marti,
Salut job 🙂

@marti: il faut que tu sois plus précis ... que veux-tu dire par
quand je modifie la plage
et
cela ne fonctionne plus

... Comment modifies-tu, qu'est-ce que tu modifies et qu'est-ce qui ne fonctionne plus 😕

Edit: bonjour mikeo. C'est dingue, quand même: on lit 3 lignes de code (ou un peu plus 🙂) et tout le monde reconnaît la "patte" de JB.
 
Dernière édition:
Re : Code VBA

c'est vrai que je ne suis pas claire ... je souhaite rajouter une colonne ! ou plusieurs ... Mais quand je modifie cela la macro de filtre automatique ça e fonctionne plus, je n'arrive pas a afficher dans ma listebox les resultats ! De plus quand a partir d'un certain nombre de ligne la plage ne s’étend plus ... J’espère avoir été assez claire, je suis débutant je ne connais pas le vocabulaire technique ...
 
Re : Code VBA

Re marti,

Il y a 4 ComboBox, une pour chaque colonne du tableau.

Et il y a une macro pour chaque ComboBox !

Débutant, vous vous lancez sur des problèmes que beaucoup, même chevronnés, ne maîtrisent pas.

A+
 
Dernière édition:
Re : Code VBA

Re,

On n'avait pas bien compris votre problème, mais maintenant je comprends ceci :

- vous ne voulez pas augmenter le nombre de ComboBox (4)

- vous avez juste ajouté une 5ème colonne pn (colonne E) au tableau

- tout ce que vous voulez c'est afficher cette colonne supplémentaire dans la ListBox.

Alors voici ce qu'il faut faire :

1) ne pas modifier la définition du nom BD (tableau dynamique de 4 colonnes) :

Code:
=DECALER(base!$A$2;;;NBVAL(base!$A$1:$A$65536)-1;4)
2) définir le nom Base (tableau de 5 colonnes) par :

Code:
=DECALER(BD;;;;5)
3) dans la macro filtre remplacer cette ligne :

Code:
For k = 1 To [bd].Columns.Count
par :

Code:
For k = 1 To [Base].Columns.Count
4) mettre la propriété ColumnCount de la ListBox à 5

5) ajuster les largeurs des colonnes de la ListBox (propriété ColumnWidths)

Fichier modifié joint.

A+
 

Pièces jointes

- 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
3
Affichages
299
Réponses
18
Affichages
538
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…