Boucle dans une macro
Résolu
dhaze
Messages postés
113
Date d'inscription
Statut
Membre
Dernière intervention
-
dhaze Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
dhaze Messages postés 113 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
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
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