Je soutiens Excel Downloads
Connexion
S'inscrire
Effectuez une recherche sur Excel Downloads...
Effectuez une recherche sur Excel Downloads...
Rechercher dans les titres uniquement
Par:
FORUMS
Nouveaux messages
Rechercher dans les forums
TÉLÉCHARGEMENTS
POUR LES PROFESSIONNELS
Gestion commerciale
Gestion de projets
Gestion du personnel
Tableaux de bord
Comptabilité
Immobilier
Bourse
POUR LES PARTICULIERS
Budgets et comptes
Plannings et calendriers
UTILITAIRES
LEÇONS ET TUTORIAUX
Fonctions Excel
Vba
RESSOURCES PEDAGOGIQUES
Rechercher une ressource
ACTUALITÉS
TUTOS
EXCEL
FORMULES ET FONCTIONS
VBA
POWER QUERY
POWER PIVOT
POWER BI
AUTRES APPLICATIONS
Recherche de tutos vidéos
Connexion
S'inscrire
Quoi de neuf
Effectuez une recherche sur Excel Downloads...
Effectuez une recherche sur Excel Downloads...
Rechercher dans les titres uniquement
Par:
Nouveaux messages
Rechercher dans les forums
Menu
Connexion
S'inscrire
Installer l'application
Installer
FORUMS
Questions
Forum Excel
Séquencer les données d'une ligne sur plusieurs en fonction des valeurs de cellule de la ligne
JavaScript est désactivé. Pour une meilleure expérience, veuillez activer JavaScript dans votre navigateur avant de continuer.
Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="job75" data-source="post: 20224737" data-attributes="member: 46381"><p>Bon pour mettre les résultats dans une 2ème feuille, clic droit sur l'onglet, Visualisez le code et collez-y cette macro :</p><p>[CODE=vb]Private Sub Worksheet_Activate()</p><p>Dim tablo, resu(), i&, j%, n&, k%</p><p>tablo = Sheets("Bons").[A1].CurrentRegion.Resize(, 10) 'à adapter</p><p>ReDim resu(1 To 3 * UBound(tablo), 1 To 8)</p><p>For i = 2 To UBound(tablo)</p><p> For j = 8 To 10</p><p> If Val(Replace(tablo(i, j), ",", ".")) Then</p><p> n = n + 1</p><p> For k = 1 To 7</p><p> resu(n, k) = tablo(i, k)</p><p> Next</p><p> resu(n, 8) = tablo(i, j)</p><p> End If</p><p>Next j, i</p><p>'---restitution---</p><p>If FilterMode Then ShowAllData 'si la feuille est filtrée</p><p>With [A2] 'à adapter</p><p> If n Then .Resize(n, 8) = resu</p><p> .Offset(n).Resize(Rows.Count - n - .Row + 1, 8).ClearContents 'RAZ en dessous</p><p>End With</p><p>With UsedRange: End With 'actualise la barre de défilement verticale</p><p>End Sub[/CODE]</p><p>Elle est très rapide car elle utilise des <strong>tableaux VBA</strong>.</p><p></p><p>A+</p></blockquote><p></p>
[QUOTE="job75, post: 20224737, member: 46381"] Bon pour mettre les résultats dans une 2ème feuille, clic droit sur l'onglet, Visualisez le code et collez-y cette macro : [CODE=vb]Private Sub Worksheet_Activate() Dim tablo, resu(), i&, j%, n&, k% tablo = Sheets("Bons").[A1].CurrentRegion.Resize(, 10) 'à adapter ReDim resu(1 To 3 * UBound(tablo), 1 To 8) For i = 2 To UBound(tablo) For j = 8 To 10 If Val(Replace(tablo(i, j), ",", ".")) Then n = n + 1 For k = 1 To 7 resu(n, k) = tablo(i, k) Next resu(n, 8) = tablo(i, j) End If Next j, i '---restitution--- If FilterMode Then ShowAllData 'si la feuille est filtrée With [A2] 'à adapter If n Then .Resize(n, 8) = resu .Offset(n).Resize(Rows.Count - n - .Row + 1, 8).ClearContents 'RAZ en dessous End With With UsedRange: End With 'actualise la barre de défilement verticale End Sub[/CODE] Elle est très rapide car elle utilise des [B]tableaux VBA[/B]. A+ [/QUOTE]
Insérer les messages sélectionnés…
Vérification
Répondre
FORUMS
Questions
Forum Excel
Séquencer les données d'une ligne sur plusieurs en fonction des valeurs de cellule de la ligne
Texte copié dans le presse-papier