XL 2016 Macro pour répliquer saisie multiple

Saumon80

XLDnaute Occasionnel
Bonjour ,

Je suis novice avec VBA et je souhaite faire une operation en apparence simple avec une Macro.

J'ai une liste de 400 villes et je souhaites pour chaque ville associer une liste de 32 couleurs avec pour chaque couleur une valeur associe.

La liste des 32 couleurs avec une valeur ne change pas. Comment puis-je créer une boucle pour générer cette liste d'environ 12,000 valeurs sur Excel ?

Je joint le fichier example.

Je souhaite en fait pour chaque ville associer les 32 couleurs et valeurs comme pour la plage en couleur pour la ville "Rouen1".

Merci d'avance
 

Pièces jointes

  • Book5.xlsx
    16.3 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonsoir.
Dans le classeur joint je ne vois qu'une couleur orange partout alors que dans une colonne intitulée "Couleur" je vois les mots "Vert1" à "Vert32"
Ce n'est vraiment pas clair tout ça.
Cette fourniture pourrait peut être vous aider pour mettre au point un jeu de 32 couleurs en par exemple 8 teintes (A: angle) déclinées en 4 luminosités (E: énergie). Elle possède aussi un module de classe Couleur qui pourrait calculer un code de couleur en fonction des propriétés E, A et F ou E, H et J données.
 

Dranreb

XLDnaute Barbatruc
Cela dit si seuls les textes vous intéressent :
En B2, à propager sur 12800 lignes :
Code:
="Rouen"&ENT((LIGNE()-2)/32)+1
En C2, à propager sur 12800 lignes et 2 colonnes :
Code:
=INDEX(Sheet2!$A$2:$B$33;MOD(LIGNE()-2;32)+1;COLONNE()-2)
 

Saumon80

XLDnaute Occasionnel
Merci beaucoup Dranreb pour votre réponse.

En effet c'est confus. En fait la couleur n'est pas importante , les mots vert1 a vert32 sont juste des remplacements pour des noms . La couleur orange était juste pour mettre en avant ce que je souhaite répliquer.

J'ai essaye le code mais il ne marche pas dans mon fichier , vous serait il possible de l'ajouter dans le fichier directement ?

Merci d'avance
 

Saumon80

XLDnaute Occasionnel
Merci , j ai mis le code dans VBA il marche mais le résultat n'est pas exactement ce que je recherche car cela applique les valeur qui devrait être en colonne 4 en colonne 2.

En fait je souhaites appliquer la liste en sheet 2 a toutes les 400 villes de la sheet4, cela devrait donner un résultat comme en sheet3 ou j'ai applique la liste aux 2 premieres villes.

Merci encore je pense qu il faut just une petite modification au niveau du code.

Je joint le fichier.
 

Pièces jointes

  • Book5.xlsm
    248.6 KB · Affichages: 2

Dranreb

XLDnaute Barbatruc
Alors :
VB:
Sub ABCD()
   Dim LigFin As Long, NbLig As Long
   LigFin = Sheet4.[B1000000].End(xlUp).Row: NbLig = LigFin - 1
   Sheet1.[A2].Resize(NbLig * 32, 2).FormulaR1C1 = "=INDEX(Sheet4!R2C1:R" & LigFin & "C2,INT((ROW()-2)/32+1),COLUMN())"
   Sheet1.[C2].Resize(NbLig * 32, 2).FormulaR1C1 = "=INDEX(Sheet2!R2C1:R33C2,MOD(ROW()-2,32)+1,COLUMN()-2)"
   End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal