Vba excel combinaisons...
Résolu
amaya1
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
amaya1 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
amaya1 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Vba excel combinaisons...
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
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
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 !