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

xpugnere

XLDnaute Nouveau
Bonjour à tous et à toutes!

Je m'arrache les cheveux depuis quelques jours sur ce problème alors là je craque et je demande de l'aide à de bons samaritains!
Voilà mon problème:
J'ai un tableau tout simple à 3 colonnes (client, type de déchet, date d'expédition). Je cherche à remplir un second tableau en fonction du contenu du premier tableau à 3 colonnes.

J'aimerais que pour la première ligne du premier tableau, on teste si la deuxième colonne contient la valeur "Fûts de ferrailles" et on remplit les deux premières cellules du deuxième tableau avec une première formule. Puis, pour la deuxième ligne du premier tableau, on effectue encore le test, puis on remplit les deux cellules suivantes du deuxième tableau avec une deuxième formule... Les autres cellules seront remplies 2 à 2 toujours avec la deuxième formule.
Le bout de code que je vous envoie est placé dans le worksheet correspondant à l'onglet du second tableau.
Je vous envoie un bout de code qui marche mais qui ne remplit pas comme je voudrais le deuxième tableau: c'est-à-dire que si j'ai 3 lignes dans mon premier tableau, il remplit comme je veux les 2 premières cellules de mon second tableau mais les 2 cellules suivantes sont remplies à partir de la troisième ligne de mon premier tableau et non à partir de la deuxième ligne comme je voudrais.

Voilà un bout de mon code:
Code:
For I = 16 To 100

If n = 1 And Sheets("Expédition").Cells(I, 2).Value = "Fûts de ferrailles" Then

    If Sheets("Expédition").Cells(I, 3).Value - Cells(6, 5).Value <= 4 Then
        If Cells(312, 3).Value = "" Then
        Cells(312, 3).Value = Sheets("Expédition").Cells(I, 3).Value - Cells(6, 5).Value - Cells(330, 6).Value + 2
        Cells(312, 4).Value = Cells(330, 6).Value
        Else
        Cells(312, 5).Value = Sheets("Expédition").Cells(I, 3).Value - Cells(6, 5).Value - Cells(330, 6).Value + 2 - Cells(312, 3).Value - Cells(312, 4).Value
        Cells(312, 6).Value = Cells(330, 6).Value
        End If
    End If

Next I

C'est pas évident à expliquer mais j'espère avoir été suffisamment clair.
MERCI ENORMEMENT POUR VOTRE AIDE!
 
Re : Problème boucle

Salut!
Je conçois que c'est pas clair du tout!
Je vais joindre mon fichier ça sera beaucoup plus clair.
Voici comment ça fonctionne:
Le fichier est constitué de 4 onglets (je l'ai simplifié pour ne garder que l'essentiel c'est pourquoi il y a des cellules #REF!).
L'objectif est de créer un planning à l'aide de l'onglet "Création plannings".
Cet onglet permet de choisir la date de création du planning et de plannifier une expédition en cliquant sur le bouton "Plannifier une expédition" (renvoi au dernier onglet).
1ère ETAPE: Cliquer sur le bouton "Plannifier une expédition" :
Ici, il est possible de créer une liste d'expédition: On choisit le client, le type de déchet à expédier ainsi que la date d'expédition (j'ai déjà rempli la liste à titre d'exemple).
2ème ETAPE: Une fois la liste remplie (déjà fait), on clique sur le bouton "Retour création planning"
3ème ETAPE: On valide en cliquant sur le bouton "Valider expédition" (situé en haut à droite). Cette étape va permettre de remplir la ligne 312 (onglet "Création plannings").
Le remplissage de cette ligne va permettre de constituer le planning d'expédition.
4ème ETAPE: Se rendre dans l'onglet "Planning global". Les bandes noires correspondent à la durée pour préparer une expédition, la date d'expédition correspond donc à la fin de la bande noire. On se rend compte ici que ça ne vas pas car on a seulement 2 dates d'expéditions qui correspondent à la première et à la troisième date fixée dans la liste de l'onglet "Expédition" (il manque donc la deuxième date). J'aimerais que toutes les dates y figurent.
Il faut savoir que ce planning est en fait un graphique type "barres empilées",
la cellule C312 de l'onglet "Création plannings" correspond donc au début de la première bande noire, la cellule D312 à la longueur de cette bande, la cellule E312 à la distance entre les 2 bandes noires et la cellule F312 à la durée de la 2éme bande noire.
Je pense que le problème vient d'une mauvaise utilisation de boucles dans mon code.
J'avoue que là je bloque pourtant ça me semble pas si compliqué...
MERCI BEAUCOUP SI VOUS POUVEZ M'AIDER!!!!

Voilà le lien pour télécharger le fichier:
http://fex.insa-lyon.fr/get?k=7WLseBhmKPeqOMScq0X
 
Dernière édition:
Re : Problème boucle

re, dsl, j'ai toujours rien compris, dans la première feuille j'ai plein de lignes vides (masquées à l'ouverture) il faudrait des données pour règler ce prob et surtout pour comprendre (j'aime bien comprendre ce que je fais et pourquoi je le fais)
 
Re : Problème boucle

Bonjour à tous et à toutes!
J'ai bien compris que ce que je demande n'est pas clair du tout, donc je viens de créer un autre fichier plus simple qui pourra répondre à mon problème.

Je m'explique:

J'ai un premier tableau tout simple à trois colonnes (client, type de déchets, quantité). Ce que je voudrais c'est que lorsque je clique sur le bouton "lancer l'exécution", un deuxième tableau se remplisse en fonction du contenu du premier tableau de la façon suivante:
La première case de ce deuxième tableau = à la quantité de la première ligne "fûts de ferrailles" du premier tableau, la deuxième case=1, la troisième case = quantité de la deuxième ligne "fûts de ferrailles" moins la quantité de la première ligne "fûts de ferrailles", la quatrième case=1, la cinquième case = quantité de la troisième ligne "fûts de ferrailles" moins la quantité de la deuxième ligne "fûts de ferrailles", la sixième case=1 etc etc...
J'aimerais que le deuxième tableau ne s'occupe que des lignes "fûts de ferrailles" et se remplisse suivant le modèle que je viens de décrire quelque soit le nombre de lignes "fûts de ferrailles" de mon premier tableau.
J'ai écrit un code qui fonctionne bien lorsque je remplis le premier tableau avec la liste 2 mais ça ne fonctionne plus lorsque je le remplit avec la liste 1. De plus, mon code ne traite que 3 lignes "Fûts de ferrailles" alors que j'aimerais qu'il traite autant de lignes que nécessaire (je n'arrive pas à adapter une boucle correcte à mon code).
J'espère avoir été clair dans mes explications...
Je joins mon fichier.
Merci beaucoup si vous pouvez m'aider parce que là je sèche depuis plusieurs jours et je commence à en avoir marre!:cry:
MERCI!!!
 

Pièces jointes

Re : Problème boucle

Voici la réponse à ma question:

Dim i As Long
Dim Colonne As Integer
Dim IntPrec As Integer

IntPrec = 0
Colonne = 6

For i = 24 To 36 Step 2

If Cells(i, 9).Value = "Fûts de ferrailles" Then
Cells(15, Colonne).Value = Cells(i, 10).Value - IntPrec
IntPrec = Cells(i, 10).Value
Colonne = Colonne + 1
Cells(15, Colonne).Value = 1
Colonne = Colonne + 1
End If

Next i

Maintenant j'ai un dernier petit souci que j'arrive pas a résoudre et ça serait vraiment sympa quelqu'un pouvait m'aider:

En prenant pour exemple la liste 1, je dois obtenir dans le tableau à remplir:
1ère case: 12 (=1ère quantité fûts de ferrailles)
2ème case: 1
3ème case: 20-12=8 (=2ème quantité fûts de ferrailles-1ère quantité fûts de ferrailles)
4ème case: 1
5ème case: 26-20-12=-6 (=3ème quantité fûts de ferrailles-2ème quantité fûts de ferrailles-1ère quantité fûts de ferrailles)
6ème case:1
7ème case: 30-26-20-12=-28 (=4ème quantité fûts de ferrailles-3ème quantité fûts de ferrailles-2ème quantité fûts de ferrailles-1ère quantité fûts de ferrailles)
8ème case:1
etc etc..

J'aurais besoin d'un code similaire au précédent afin de pouvoir traiter autant de lignes "Fûts de ferrailles" que nécessaire.

MERCI BEAUCOUP POUR VOTRE AIDE!!!
 

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

Discussions similaires

Réponses
8
Affichages
480
Réponses
10
Affichages
290
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
177
Réponses
7
Affichages
254
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
508
Retour