Boucle dans une macro
Résolu
dhaze
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
dhaze Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
dhaze Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je fais appel à vous, car je ne sais pas comment introduire dans la boucle le remplissage de mes cellules.
Avec en plus, une condition s'il y a 4 ou 5 lignes...
Je traite ce type de données :
Mais tout cela fonctionne comme je le souhaite dans le début de la macro.
Peut-être est-il possible de simplifier le post séquençage, mais c'est secondaire.
C'est la fin où je cale...
Lo.
Je fais appel à vous, car je ne sais pas comment introduire dans la boucle le remplissage de mes cellules.
Avec en plus, une condition s'il y a 4 ou 5 lignes...
Je traite ce type de données :
A*Z_000000_V0_0
A*Z_000000_V0_0_A
A*Z_000000_V0_0_B
A*Z_000000_(A*Z)_V0_0
A*Z_000000_(A*Z)_V0_0_R
A*Z_000000_(A*Z)_V0_0_V
Mais tout cela fonctionne comme je le souhaite dans le début de la macro.
Peut-être est-il possible de simplifier le post séquençage, mais c'est secondaire.
C'est la fin où je cale...
Sub Séquençage_Cellule_F2() Dim Cellule_de_Départ As String Dim Post_Séquençage As String Dim Valeur_à_Séquencer As String Dim Séquence() As String Cellule_de_Départ = Cells(2, 6).Value Post_Séquençage = Replace(Cellule_de_Départ, "_V", "_") Post_Séquençage = Replace(Post_Séquençage, "_R", "_") Post_Séquençage = Replace(Post_Séquençage, "_A", "_") Post_Séquençage = Replace(Post_Séquençage, "_B", "_") Post_Séquençage = Replace(Post_Séquençage, "_", " ") Post_Séquençage = Replace(Post_Séquençage, "(", "") Post_Séquençage = Replace(Post_Séquençage, ")", "") Post_Séquençage = Trim(Post_Séquençage) Valeur_à_Séquencer = Post_Séquençage Séquence() = Split(Valeur_à_Séquencer) For i = LBound(Séquence) To UBound(Séquence) Liste = Liste & vbNewLine & "Séquence " & i & " = " & Séquence(i) Next i MsgBox Liste ' Si liste = 4 lignes Cells(2, 1) = Liste 'Séquence 0 Cells(2, 2) = Liste 'Séquence 1 Cells(2, 3) = Liste 'Séquence 2 Cells(2, 4) = Liste 'Séquence 3 ' Si liste = 5 lignes Cells(2, 1) = Liste 'Séquence 0 Cells(2, 2) = Liste 'Séquence 1 Cells(2, 3) = Liste 'Séquence 3 Cells(2, 4) = Liste 'Séquence 4 Cells(2, 5) = Liste 'Séquence 2 End Sub
Lo.
A voir également:
- Boucle dans une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
4 réponses
Bonjour,
pas besoin de boucle:
pas besoin de boucle:
Sub Séquençage_Cellule_F2() Dim Cellule_de_Départ As String Dim Post_Séquençage As String Dim Valeur_à_Séquencer As String Dim Séquence() As String Cellule_de_Départ = Worksheets("feuil1").Cells(2, 6).Value Post_Séquençage = Replace(Cellule_de_Départ, "_V", " ") Post_Séquençage = Replace(Post_Séquençage, "_R", " ") Post_Séquençage = Replace(Post_Séquençage, "_A", " ") Post_Séquençage = Replace(Post_Séquençage, "_B", " ") Post_Séquençage = Replace(Post_Séquençage, "_", " ") Post_Séquençage = Replace(Post_Séquençage, "(", "") Post_Séquençage = Replace(Post_Séquençage, ")", "") Post_Séquençage = Trim(Post_Séquençage) Valeur_à_Séquencer = Post_Séquençage Séquence() = Split(Valeur_à_Séquencer) For i = LBound(Séquence) To UBound(Séquence) Liste = Liste & vbNewLine & "Séquence " & i & " = " & Séquence(i) Next i MsgBox Liste ' Affichage sequence Worksheets("feuil1").Cells(2, 1).Resize(, UBound(Séquence, 1) + 1) = Séquence End Sub
Merci f894009,
Effectivement, quelle simplicité !
Pour 4 lignes, c'est parfait.
Malheureusement pour les cas ou il y a 5 lignes,
petite subtilité, la troisième valeur passe en dernière :-(
Lo.
Effectivement, quelle simplicité !
Pour 4 lignes, c'est parfait.
Malheureusement pour les cas ou il y a 5 lignes,
petite subtilité, la troisième valeur passe en dernière :-(
' Si liste = 5 lignes Cells(2, 1) = Liste 'Séquence 0 Cells(2, 2) = Liste 'Séquence 1 Cells(2, 3) = Liste 'Séquence 3 Cells(2, 4) = Liste 'Séquence 4 Cells(2, 5) = Liste 'Séquence 2 <------ !!!
Lo.
Re,
Sub Séquençage_Cellule_F2() Dim Cellule_de_Départ As String Dim Post_Séquençage As String Dim Valeur_à_Séquencer As String Dim Séquence() As String Cellule_de_Départ = Worksheets("feuil1").Cells(2, 6).Value Post_Séquençage = Replace(Cellule_de_Départ, "_V", " ") Post_Séquençage = Replace(Post_Séquençage, "_R", " ") Post_Séquençage = Replace(Post_Séquençage, "_A", " ") Post_Séquençage = Replace(Post_Séquençage, "_B", " ") Post_Séquençage = Replace(Post_Séquençage, "_", " ") Post_Séquençage = Replace(Post_Séquençage, "(", "") Post_Séquençage = Replace(Post_Séquençage, ")", "") Post_Séquençage = Trim(Post_Séquençage) Valeur_à_Séquencer = Post_Séquençage Séquence() = Split(Valeur_à_Séquencer) For i = LBound(Séquence) To UBound(Séquence) Liste = Liste & vbNewLine & "Séquence " & i & " = " & Séquence(i) Next i MsgBox Liste ' Affichage sequence With Worksheets("feuil1") .Cells(2, 1).Resize(, 5).ClearContents If UBound(Séquence, 1) < 4 Then .Cells(2, 1).Resize(, UBound(Séquence, 1) + 1) = Séquence Else .Cells(2, 1) = Séquence(0) 'Séquence 0 .Cells(2, 2) = Séquence(1) 'Séquence 1 .Cells(2, 3) = Séquence(3) 'Séquence 3 .Cells(2, 4) = Séquence(4) 'Séquence 4 .Cells(2, 5) = Séquence(2) 'Séquence 2 <------ !!! End If End With End Sub