Dans VBA : dupliquer des lignes contenant des retours chariots
Résolu
Loic
-
Loïc -
Loïc -
Bonjour,
J'ai une liste. Chaque ligne contient une personne. Les colonnes A à F contiennent les coordonnées. La colonne G contient les options choisies. Lorsque plusieurs options sont choisies elles sont séparées par un retour chariot (chr(10)).
Je voudrai avoir une liste à plat avec une option par ligne (et plusieurs fois la même personne lorsqu'elle a plusieurs options).
Je n'arrive pas à détecter avec vba les cellules qui contiennent un retour chariot.
J'ai essayé avec "InStr(Chr(10), cellule_option, 0)" qui me renvoie toujours un message "Type incompatible (erreur 13)".
Quelqu'un a-t-il une solution.
Merci d'avance.
, office 2010.
J'ai une liste. Chaque ligne contient une personne. Les colonnes A à F contiennent les coordonnées. La colonne G contient les options choisies. Lorsque plusieurs options sont choisies elles sont séparées par un retour chariot (chr(10)).
Je voudrai avoir une liste à plat avec une option par ligne (et plusieurs fois la même personne lorsqu'elle a plusieurs options).
Je n'arrive pas à détecter avec vba les cellules qui contiennent un retour chariot.
J'ai essayé avec "InStr(Chr(10), cellule_option, 0)" qui me renvoie toujours un message "Type incompatible (erreur 13)".
Quelqu'un a-t-il une solution.
Merci d'avance.
, office 2010.
A voir également:
- Dans VBA : dupliquer des lignes contenant des retours chariots
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Vba inputbox - Astuces et Solutions
- Vba find - Astuces et Solutions
3 réponses
Bonjour,
le séparateur est bien chr(10), je n'ai pas eu de problème...
https://www.cjoint.com/?BLgkZeXUafX
je ne teste pas si Gx est vide....
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
le séparateur est bien chr(10), je n'ai pas eu de problème...
Sub dupliquer()
Dim lig As Long, lig2 As Long, domaine As Variant, i As Long
Dim sh As Worksheet
Set sh = Worksheets("Feuil2")
Application.ScreenUpdating = False
sh.Cells.ClearContents
Cells(1, 1).Resize(1, 7).Copy sh.Cells(1, 1)
lig2 = 2
For lig = 2 To Cells(Rows.Count, 1).End(xlUp).Row
domaine = Split(Cells(lig, "G"), vbLf)
For i = 0 To UBound(domaine)
Cells(lig, 1).Resize(1, 6).Copy sh.Cells(lig2, 1)
sh.Cells(lig2, 7) = domaine(i)
lig2 = lig2 + 1
Next i
Next lig
Application.ScreenUpdating = True
sh.Activate
End Sub
https://www.cjoint.com/?BLgkZeXUafX
je ne teste pas si Gx est vide....
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Le fichier contenant le format initial et le format souhaité est ici : http://cjoint.com/?BLgjb2fCcME
Merci du temps consacré à m'aider.
Bien cordialement,
Loïc