Vba excel combinaisons...
Résolu/Fermé
amaya1
Messages postés
3
Date d'inscription
dimanche 12 juillet 2009
Statut
Membre
Dernière intervention
15 juillet 2009
-
14 juil. 2009 à 01:02
amaya1 Messages postés 3 Date d'inscription dimanche 12 juillet 2009 Statut Membre Dernière intervention 15 juillet 2009 - 15 juil. 2009 à 20:11
amaya1 Messages postés 3 Date d'inscription dimanche 12 juillet 2009 Statut Membre Dernière intervention 15 juillet 2009 - 15 juil. 2009 à 20:11
A voir également:
- Vba excel combinaisons...
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
14 juil. 2009 à 04:30
14 juil. 2009 à 04:30
Bonsoir,
voilà un code qui fonctionne. Tu sélectionnes ton tableau avant de lancer la macro.
je te laisse l'étudier
cordialement
voilà un code qui fonctionne. Tu sélectionnes ton tableau avant de lancer la macro.
je te laisse l'étudier
cordialement
Sub combi() Dim tablo As Range, maxind(), ind(), i, j, k, l, n, decal, tot, f Set tablo = Selection() n = tablo.Columns.Count / 2: l = tablo.Rows.Count ReDim maxind(n), ind(n) decal = 15 For j = 1 To n 'nb occurences par paire de colonnes For i = 1 To l If tablo(i, 2 * j) = "" Then ind(j) = i - 1: Exit For Else If i = l Then ind(j) = l End If Next Next For j = 1 To n 'produit des nbres d'occurrences des paires de colonnes de j+1 à n maxind(j) = 1 For i = j + 1 To n maxind(j) = maxind(j) * ind(i) Next Next tot = maxind(1) * ind(1) 'nbre de lignes du tableau résultat maxind(0) = tot For j = 1 To n For f = 1 To tot / maxind(j - 1) 'utile pour répéter les lignes jusqu'à tot lignes For i = 1 To ind(j) For k = 1 To maxind(j) Cells((i - 1) * maxind(j) + (f - 1) * maxind(j - 1) + k, 2 * j - 1 + decal) = tablo(i, 2 * j - 1) Cells((i - 1) * maxind(j) + (f - 1) * maxind(j - 1) + k, 2 * j + decal) = tablo(i, 2 * j) Next Next Next Next End Sub
amaya1
Messages postés
3
Date d'inscription
dimanche 12 juillet 2009
Statut
Membre
Dernière intervention
15 juillet 2009
15 juil. 2009 à 20:11
15 juil. 2009 à 20:11
Bonjour,
C’est parfait, j’ai réussi à comprendre ton raisonnement et à l’adapter à tous mes cas ! Merci beaucoup, je crois qu’il m’aurait fallu très longtemps pour trouver l’astuce !
J’en profite pour te poser d’autres questions sur vba :
- Comment créer une nouvelle feuille (worksheet) qui est la copie d’une feuille déjà existante ?
- Comment faire pour empêcher toute modification de l’utilisateur dans une cellule définie (ou un tableau) ?
- Comment faire pour qu’une valeur soit définie pour tout le projet ? En fait, je souhaite récupérer la valeur d’une textbox (j'ai créé un UserForm) dans une variable n puis quand j’exécute une autre procédure sub je cherche à avoir toujours n=ce qu’il y avait dans la TextBox. En effet pour l'instant je suis contrainte d'écrire dans chaque sub : n = TextBox1.Value
- Comment déterminer le temps de calcul d’une procédure ?
Merci d'avance !
C’est parfait, j’ai réussi à comprendre ton raisonnement et à l’adapter à tous mes cas ! Merci beaucoup, je crois qu’il m’aurait fallu très longtemps pour trouver l’astuce !
J’en profite pour te poser d’autres questions sur vba :
- Comment créer une nouvelle feuille (worksheet) qui est la copie d’une feuille déjà existante ?
- Comment faire pour empêcher toute modification de l’utilisateur dans une cellule définie (ou un tableau) ?
- Comment faire pour qu’une valeur soit définie pour tout le projet ? En fait, je souhaite récupérer la valeur d’une textbox (j'ai créé un UserForm) dans une variable n puis quand j’exécute une autre procédure sub je cherche à avoir toujours n=ce qu’il y avait dans la TextBox. En effet pour l'instant je suis contrainte d'écrire dans chaque sub : n = TextBox1.Value
- Comment déterminer le temps de calcul d’une procédure ?
Merci d'avance !