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

XL 2016 Créer une boucle pour copier coller des données selon une cellule

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

Cotriana

XLDnaute Nouveau
Bonjour à tous, je lance cette discussion car j'ai un très gros problème avec une boucle for que je n'arrive pas à créer et j'aurais besoin de l'aide des experts en excel.
J'aimerai créer une macro avec une boucle qui vient :
1) Récupérer la référence en A2 (liste capa_opé) et la copier
2) Se rendre sur Capacités opérationnelles, filtrer sur la référence copiée, filtrer sur opérationnelle
3) Copier les noms des opérateurs
4) Les coller sous la référence en C2 (liste capa_opé)
5) Faire pareil avec la cellule A3, jusqu'à arriver à la fin de la lsite de référence en colonne A
--> Une fois que toutes les références sont renseignées, on supprime de la cellule C2 à NG2 pour ne plus avoir "Prénom"
Je pense à une boucle for next mais je n'arrive pas à la programmer
J'ai commencé un code mais je n'arrive pas à créer la boucle
Je vous remercie pour votre aide !
 

Pièces jointes

Solution
Re,

Oui, oui, c'est clair.

Alors la première partie : Grâce à ce bouton, la macro vient récupérer les données d'un fichier externe
power query peut très facilement le faire, mais pour ça il faudrait que nous ayons un exemple du fichier externe et des précisions sur ce qu'il faut ou non importer / transformer.
rajouter des colonnes et adapter le premier tableau selon mes besoins
rajouter des colonnes et adapter, ça, power query sait également le faire.
mais il faudrait savoir quelles colonnes pour quel tableau. Quel est le 'premier tableau' ????

dans la version ci-jointe vous trouverez une version macro de ce que vous demandiez en post initial.
Au fait, dans la version Power Query pour les références...
Un fichier représentatif, n'est pas forcément TOUT le fichier, mais un exemple avec juste assez de données anonymisées pour comprendre le problème. On a sans doute pas besoin de toutes les feuilles.
Même en supprimant toutes les données non-essentielles, il est encore trop lourd, je ne comprend pas, je vais essayer de trouver d'où vient l'erreur par moi-même. Merci quand même !
 
Re,

Voici une version qui crée les listes de validation au moment de la sélection des cellules de la colonne 'Personnel' du tableau 'T_Réferences'. Plus besoin d'avoir un tableau de listes.

Sélectionnez une cellule vide de cette colonne puis choisissez dans la liste de validation.
Si la liste ne se crée pas c'est qu'il n'y a pas de personnels dispo pour cette référence.


En ce qui concerne l'erreur, lorsque vbe vous demande si vous voulez déboguez ou arrêter, choisissez déboguer.

Lorsqu'il s'ouvre (l'éditeur vbe) positionné sur la ligne problématique, celle-ci est surlignée en jaune.
Maintenez quelques secondes votre curseur sur les différentes variables et vous verrez apparaître leur contenu dans une info bulle (voir image ci-dessous où le curseur était sur le mot 'valeurs'). Vous pouvez pour plus de précision, ouvrir la fenêtres des variables locales que vous pourrez explorer. En autre vous verrez celles qui ne sont pas du bon type

Quelque chose comme ceci :


Cordialement
 

Pièces jointes

Dernière édition:
Milles merci à vous ! je pense que ça devrait le faire!
 
Re, juste savez-vous comment il est possible de récupérer les opérateurs en "Opérationnels" et "En apprentissage" au niveau de cette ligne du code ?
If valeurs(i, 3) = Ref And Left(valeurs(i, 4), 6) = "Opérat" Then dico(valeurs(i, 5)) = ""
 
Re,

En lieu et place de
en "Opérationnels" et "En apprentissage"
ne serait-ce pas :
en "Opérationnels" Ou "En apprentissage" ????
Vous avez déjà les Opérationnels par Left(valeurs(i,4),6) qui récupère les 6 premiers caractères de la chaîne contenue dans valeur(i,3).

On va faire un Ou en supposant que les données à tester sont dans la même colonne :

VB:
If valeurs(i, 3) = Ref And ( Left(valeurs(i, 4), 6) = "Opérat" Or Valeurs(i,4) = "En apprentissage" ) Then dico(valeurs(i, 5)) = ""

Utilisez la balise de code (</>) sur la barre de bouton de l'éditeur de post pour publier vos codes. Cela les rend plus lisible

cordialement
 
Merci Barbatruc pour votre aide, j'en ai terminé avec ce fichier grâce à votre macro hascooooooo! Bonne continuation à vous, je clôture cette discussion.😎
 
- 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
10
Affichages
365
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…