Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 problème dans une macro en plus je voudrais rajouter une colonne dans le choix

bellenm

XLDnaute Impliqué
Bonjours à tous,

En voulant préparer la saison prochaine je viens de voir qu'une macro bug.
La macro "tri_liste_Adversaire" dans le fichier joint ne fonctionne plus
VB:
Sub Tri_liste_Adversaire()
'
If MsgBox("Avez-vous enlever la protection sur la feuille ""DONNEES LIS"". Voulez-vous continuez ?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then
  '
Dim a, b(), I As Long, j As Byte, x As Long, n As Long
    With Sheets("DONNEES LIS").Range("j1").CurrentRegion
        a = .Value
        x = Application.Count(.Columns("f:i").Cells)
    End With
    ReDim b(1 To x, 1 To 4)
    For j = 6 To UBound(a, 2)
        For I = 2 To UBound(a, 1)
            If a(I, j) = 1 Then
                n = n + 1
                b(n, 1) = j - 5
                b(n, 2) = a(I, 2)
                b(n, 3) = a(I, 5)
                b(n, 4) = a(I, 4)
            End If
        Next
    Next
l'erreur s'indique au premier b(n, 1)
si l'erreur rectifier j'aimerais ajouter un colonne supplémentaire dans le choix sur le fichier "Donnes lis" ajouter la colonne "T"
car nous créons une cinquième équipes et a l'origine la formule l'était pour 4.

Merci beaucoup pour votre aide, j'essaye de comprendre certaine formule mais là je ne m'en sort pas.

Marc B
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Déjà, pouvez vous virer tous ces modules vides ? Ca ne sert à rien et ça énerve plutot quand on cherche un module.
Ce n'est pas intuitif de savoir que Sub Tri_liste_Adversaire se trouve dans le module 46 !!!

Dans votre application, x vaut 15, et évidemment à un moment n vaut 16.
Vous avez un problème de dimmensionnement de tableaux.


Pensez à faire du pas à pas, cela montre de suite d'où vient le problème.
 

bellenm

XLDnaute Impliqué
Bonsoir Sylvanu,

Ce n'est pas moi qui a crée le code, à la base il devait faire un tri sur une base de donnée:

sur les colonnes p,q,r,s et sur la même ligne devait prendre le nom du club de la colonne K ainsi M et o


Qui me donnait les équipe à rencontrer avec heure et adresse.

Seulement je ne sait pourquoi elle ne fonctionne plus!

Comme on a crée une équipe supplémentaire j'aimerais ajouter la colonne T

et le résultat donne ceci pour quatre équipe


Donc le but si c'est possible modifier le code afin que sur mon tableau j'ai les cinq équipe.

Je ne sais pas si cela est clair pour vous si je n'explique bien.

d'avance merci pour la lecture et l'aide qui me sera apportée.

Marc B
 
Dernière modification par un modérateur:

bellenm

XLDnaute Impliqué
Re:

C'est bien et j'aimerais aussi savoir ce que j'écrit mais je ne suis pas informaticien j'essaye simplement d’appliquer des codes pour mon fichier et le pas à pas je ne sais pas comment y procéder, si vous pouviez m'expliquer en quelques mots ce serait bien mais je ne veux pas abuser de votre temps!
Marc
 

bellenm

XLDnaute Impliqué
re:

Pour les modules dont tu parles, elle sont sur le fichier complet, ici j'ai enlever les feuilles inutile pour la compréhension et résolution du problème.

Si je doit enlever ces modules je n'y suis pas arriver ou alors qu'on m'explique la procédure et j'essayerais de la mettre en place.

Marc B
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
A tester, j'ai arbitrairement repossé les limites de b avec 100 et 5. Au moins ça ne plante plus.

Pour le pas à pas, c'est très simple.
Vous vous positionnez sur la Sub et vous appuyez sur F8.
A chaque appui vous progresser d'une ligne.
Si vous avez la fenetre de variables locales ( sinon Affichage, Fenetre variables locales ) vous avez la liste de vos variables ainsi que leur valeur.
C'est comme ça que j'ai vu les dépassement de limites.

Vous pouvez aussi mettre un point d'arrêt en cliquant à gauche de la ligne d'instruction ( dans la barre grise ) vous verrez apparaitre un point marron.
Ensuite oon lance un Run avec appui sur F5 et le programme va tourner jusqu'à rencontrer un point d'arrêt et il va stopper. Après on peut continuer avec F5.

Pour supprimer un module vide, il suffit de le selectionner et faire clique droit Supprimer module
Le fait qu'ils existent ne gêne en rien, mais c'est vraiment pénible pour retrouver ses petits.
Bon courage, et bonne soirée.
 
Dernière modification par un modérateur:

bellenm

XLDnaute Impliqué
Bonjour Sylvanus,

J'ai modifier comme tu l'as écrit je pense avoir bien fait
les limites de b avec 100 et 5.
en
VB:
   ReDim b(1 To 100, 1 To 5)
jusque l'a le code avance mais se bloque je pense à la dernière étape
Code:
      .Offset(1).Resize(n, UBound(b, 2)).Value = b
juste avant with
with et end with

Marc
 

bellenm

XLDnaute Impliqué
re: Sylvanus,

le pas à pas ne fonctionne pas ici,

je me met à la hauteur du SUB j'appuye F8 mais rien ne bouge

J'ai poster un nouveau post y a t'il moyen de changer le résultats : par exemple que les équipes choisie pour l'équipe 1 devient 3, pour la 2 devient 4 et pour la trois devient 5.

quel ligne dois je modifier

Merci d'avance pour ces infos

Marc B
 

Discussions similaires

Réponses
4
Affichages
453
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…