Problème boucles while, if et for

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

Aurianelm

XLDnaute Nouveau
Bonjour,

J'espère vraiment que vous allez pouvoir m'aider !!

J'ai un premier tableau qui est un TCD généré par Excel à double entrée :
Les télévendeurs en ligne et le type d'action menée en colonne

Il faut que je copie ces données et que je les colle dans un autre tableau également à double entrée (mêmes critères). Seulement dans ce dernier tableau, les colonnes ne sont pas forcément les mêmes que dans le premier. Il faut donc que :
Si le télévendeur1 est également dans le 2ème tableau alors je regarde le 1er critère colonne du 1er, regarde s'il est également dans le 2ème et alors seulement que copie/colle la donnée qui correspond.

J'ai écris ce programme qui fonctionne pour le 1er critère colonne mais qui ensuite tourne en boucle et ne génère plus rien.


Sub remplir()

Dim mois As String, annee As String, semaine As String, fic_journalier As String, rep As String

fic_journalier = "RESULTATS JOURNALIERS"
mois = InputBox("Sur quel mois ? (en toutes lettres)")
annee = InputBox("Sur quelle année")
semaine = InputBox("Sur quelle semaine (numéro de la semaine)")

Windows("REQUETE MARS.xls").Activate
Range("B5").Select
i = 1
j = 0
k = 0
l = 0

While Range("B5").Offset(0, l).Value <> " "
If Range("B5").Offset(0, l).Value = "APPEL1" Then
For i = 1 To 20
If Range("A6").Offset(j, 0).Value = "T.ACTEUR" & i Then
Range("B6").Offset(j, 0).Copy
Windows(fic_journalier & " " & mois & " " & annee & " " & "S" & semaine & ".xls").Activate
Range("C5").Offset(k, 0).PasteSpecial
j = j + 1
k = k + 1
Else
Windows(fic_journalier & " " & mois & " " & annee & " " & "S" & semaine & ".xls").Activate
Range("C5").Offset(k, 0).Value = " "
Windows("REQUETE MARS.xls").Activate
k = k + 1
End If
l = l + 1
Next
Else
If Range("B5").Offset(0, l).Value = "APPEL2" Then
For i = 1 To 20
If Range("A6").Offset(j, 0).Value = "T.ACTEUR" & i Then
Range("B6").Offset(j, 0).Copy
Windows(fic_journalier & " " & mois & " " & annee & " " & "S" & semaine & ".xls").Activate
Range("C5").Offset(k, 0).PasteSpecial
j = j + 1
k = k + 1
Else
Windows(fic_journalier & " " & mois & " " & annee & " " & "S" & semaine & ".xls").Activate
Range("C5").Offset(k, 0).Value = " "
Windows("REQUETE MARS.xls").Activate
k = k + 1
End If
l = l + 1
Next
End If
End If
Wend
End Sub


Pour mieux comprendre je vous joint un exemple des 2 tableaux en question.
Merci.

Auriane
 

Pièces jointes

Re : Problème boucles while, if et for

Bonjour
Pourquoi ne le feriez vous pas à l'aide de formules.
En U5:
Code:
=EQUIV($A5;'[REQUETE MARS EXEMPLE.xls]TCD'!$A$6:$A$11;0)
En C5:
Code:
=SI(ESTNA($U5);"";INDEX('[REQUETE MARS EXEMPLE.xls]TCD'!B$6:B$11;$U5))
Propagé à droite, et toute la ligne propagée vers le bas.
À +
 
Re : Problème boucles while, if et for

Parce que je dois faire un programme automatisé. Que la personne n'ai qu'à lancer la macro. Sachant qu'avant le programme pour lequel je vous demande de l'aide j'ai une autre macro qui créé le fichier RESULTATS JOURNALIERS mars 2013 S11 et qu'encore une autre macro qui créé le TCD (qui est lancé chaque jour sur un fichier de données toujours construit de la même façon mais avec des données différentes, mise à jour chaque jour).

En tout cas merci pour votre aide 🙂
 
Re : Problème boucles while, if et for

J'ai dit "à l'aide de formules". Cela sous-entendait que si les formules peuvent, certes, être mises au point sur la feuille, rien n'empêche d'écrire une macro qui les installe, quitte à en figer ensuite les valeurs en faisant .Value = .Value sur toute la plage, puis supprimer la colonne U.
Cela pourrait être rapide si fait sans boucle sur les lignes. Les FormulaR1C1 peuvent en effet être mis d'un coup sur toute une colonne. Voire la même formule =INDEX partout, si l'on prend soin de mettre les numéros de colonne dans une ligne libre comme on a mis les numéros de lignes dans la colonne U.
 
Dernière édition:
- 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
233
Réponses
4
Affichages
177
Réponses
10
Affichages
281
Réponses
2
Affichages
153
Réponses
3
Affichages
665
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
2
Affichages
202
Réponses
4
Affichages
461
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
Retour