problème avec une macro vb sous excel

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

A

agatso

Guest
bonjour.
J'ai un petit problème avec une macro excel. Je vous explique d'abord ce que je voudrais faire avant de vous montrer ma macro.

Exposé de la situation: je souhaite controler 1/4 des objets par pylone. Par exemple des tubes. Ce nombre de tube dépend du pylone, chaque pylone étant numéroté. Le n° et le nombre de tube par pylone, ainsi que leur diamètre est noté sur la feuille "bdd" (f1 dans la macro).
Je souaite inserer dans une autre feuille excel sur laquelle le tableau est déjà crer les indication suivantes:
n° pylone..1.. N° tube : 1 diametre du tube n°1 :
N° tube :2 diametre du tube n° 2:
n° pylone..2
etc

Mon problème: le n° de tube change, il arrive qu'il y est des interferences entre les tubes, des cases vides dans mon tableau..

De plus, je souhaiterai que si le nombre de pylone et de tube l'obligent, changer de feuille des que la ligne 31 est atteinte...et là je bloque completement!!

Maintenant voici la macro:
ub ctrl_outils()

Set don1 = Workbooks("nom_fichier.xls").Sheets("feuil1")
donn1 = don1.Cells(5, 3)
Set f1 = Workbooks(donn1).Sheets("Feuil1") ' bdd
Set don5 = Workbooks("nom_fichier.xls").Sheets("feuil1")
donn5 = don5.Cells(11, 3)
Set f5 = Workbooks(donn5).Sheets("feuille1") ' pv outils


nb_pylone = 0
While f1.Cells(nb_pylone + 7, 2) <> Empty
nb_pylone = nb_pylone + 1
Wend
i = 0

While i < nb_pylone

c = f1.Cells(i + 7, 19)
d = c / 4
f5.Cells(((i * d) + 21), 13) = f1.Cells((i + 7), 2) 'n°pylone
f5.Cells(1, 34) = f1.Cells(1, 2) 'chantier n°
f5.Cells(2, 9) = f1.Cells(1, 8) 'nom ligne
j = 4

While j <= c 'nbre pieu par pylone
a = j / 4 'nbre de tube à controler

f5.Cells((i * d) + 21 + a - 1, 19) = a 'n° tube
f5.Cells((i * d) + 21 + a - 1, 23) = f1.Cells(i + 7, 20) 'diam TUBE

j = j + 4
Wend
i = i + 1
Wend
End Sub


Merci d'avance!!
 
- 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
5
Affichages
845
Réponses
4
Affichages
692
Réponses
8
Affichages
752
Retour