Menu déroulant qui bloque à 22 colonnes

Bonjour,

Je viens demander de l'aide sur une petite macro. J'ai fais un petit menu déroulant qui prend une première feuille en référence mais la macro s’arrête à la colonne 22 de ma première feuille alors que j'ai 45 noms 8O. J'ai beau regarder, je ne comprends pas d'ou vient mon erreur. Si quelqu'un à une idée, je mets mon code :

Sub MacroPlann()

' On masque les modifications effectuées a l'utilisateur (gain de temps, moins de nuisances visuelles)
Application.ScreenUpdating = False

PremLigne = 1
DernLigne = 32
PremColmn = 0
DernColmn = 0

choix = Worksheets("PlanAg").Range("K4").Value
PremColmn = 1 + 1 * choix
DernColmn = 1 + 1 * choix
Worksheets("PlanMens").Activate
Worksheets("PlanAg").Range("C6:C37").Value = Range(Cells(PremLigne, PremColmn), Cells(DernLigne, DernColmn)).Value
Worksheets("PlanAg").Activate

' On affiche à nouveau les modifications effectuées a l'utilisateur
Application.ScreenUpdating = True
End Sub

Voilà

Bonjour,

La valeur saisie +1 en K4 est la colonne qui sera lu.

Si K4 = 25 (la colonne 25 est Y), ce sera la colonne 26 (Z) qui sera lu.

Pourquoi 1 de plus, c'est ici : PremColmn = 1 + 1 * choix

Ensuite, le nombre de ligne écrites, va 6 à 37, soit 28 lignes Range("C6:C37")

DernLigne = 32 limite le nombre de lignes traitées.

S'il y a des valeurs dans les plages demandées, les données s'écrieront dans la colonne C.

ric

Bonsoir,

la macro s’arrête à la colonne 22 de ma première feuille alors que j'ai 45 noms 8O.

Rien ne limite ton code à la colonne 22 ! mais 45 noms 8O, il faudrait savoir ce que cela signifie !!

Ton code réécrit de façon un peu moins ampoulée :

Sub MacroPlann()
    Dim wsS As Worksheet, nL%, k%
    Set wsS = Worksheets("PlanMens")
    nL = 32
    With Worksheets("PlanAg")
        k = .Range("K4").Value + 1
        .Range("C6").Resize(nL).Value = wsS.Cells(1, k).Resize(nL).Value
    End With
End Sub

Variables déclarées (tu étais fâché avec les déclarations ? ), mise sous variable de la feuille source et travail avec la feuille cible sous instruction With, et plus besoin d'inhiber la mise à jour de l'affichage, on n'active rien et il n'y a donc plus rien à inhiber ! (NB- il n'était pas utile de le réactiver, Excel s'en charge...)

Ta cellule K4 est supposée accueillir un nombre entier positif ou nul : 0 à ce que tu veux qui indiquera la colonne source de la feuille source en y ajoutant 1 [ne pas dépasser toutefois 16383 ! ]

Le nombre de lignes récupérées est défini à 32, mais tu peux l'augmenter si nécessaire.

Cordialement.

Bonjour,

Alors déjà un grand merci à tous pour vos réponses.

Je vais essayer d'être un peu plus clair dans mes explications ^^

Dans ma colonne K j'ai une liste de noms (De la colonne K6 à K56) qui sont dans le même ordre d'apparition que sur ma première feuille (PlanMens) et la celulle K4 me renvois un nombre qui est ni plus ni moins que le chiffre de la colonne (donc de K6 à K 56 avec mon +1). Ma macro est affectée à un menu déroulant qui reprend ces noms et me copie-colle le texte écrit sur ma première page mais avec une mise en forme différente (Mon Range("C6:C37")). Sauf que mon menu déroulant ne me prend que les 22 premiers noms et ensuite il s’arrête Alors que les noms se suivent et qu'il n'y a aucune raison à ce que ça s’arrête là...

Du coup le code de MFerrand fonctionne parfaitement (et vi, il est beaucoup plus propre) mais idem, il me bloque à 22 noms

Par contre je n'ai rien contre les déclarations ^^ en fait je débute avec vba et je me sers de ce que je connais en essayant de bidouiller et de faire faire à l'ordi ce que je veux (bon pour l'instant il fait plus ce qu'il veut que moi mais bon).

En tout cas merci, c'est cool de prendre du temps pour m'expliquer et pour que j'apprenne

Bonjour,

Je ne peux coder qu'à partir du code préexistant, dans la mesure où les objets auxquels il fait référence sont identifiables. (Ou à partir de ce que je peux voir dans le fichier...)

La plage K6:K56 n'intervient nullement dans le code... Le chiffre de la colonne, j'ignore ce que c'est. La colonne K est la colonne numéro 11, c'est tout ce que je peux en savoir. Et le nombre figurant en K4 +1 définit la colonne dans laquelle tu vas chercher des données, précisément les données d'une plage colonne sur 32 lignes.

Le nombre 22 ne correspond à rien dans le code, et je ne sais donc pas d'où il sort...

Cordialement.

Rolala je suis mais alors désolée, je viens de trouver mon erreur je suis un boulet ...

Mon menu déroulant a été fait avec un "contrôle de formulaire" et dans le format de contrôle, ma plage d'entrée et mon nombres de lignes s’arrêtaient à 22 ... Donc un grand merci à vous et surtout à toi MFerrand pour votre patience ^^ (je me permets de garder ton code sur mon fichier ^^ il est plus propre le tien).

Cordialement

Rechercher des sujets similaires à "menu deroulant qui bloque colonnes"