Macro : séparation suivant mise en forme

Fermé
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 - 18 oct. 2013 à 11:54
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 - 21 oct. 2013 à 15:52
Bonjour,

J'ai une petite macro super cool...
qui coupe mes donnée a chaque retour à la ligne... cependant, j'ai modifier ma macro précédente pour mettre "; " à la place du retour à la ligne... et donc cette macro ne marche plus...

Est ce que quelqu'un sait comment changer cette macro ci dessous pour qu'elle coupe au "; " plutôt que le retour à la ligne???

Sub Separer()
'
'##############################################################################
'
' Procédure de découpage des données
' En cours de création
'
'##############################################################################
'
'
' Déclaration des variables
'==========================
'
Dim i As Integer
Dim NbLigne As Integer
Dim Contenu
Dim ligne As Long
Dim colonne As Long
Dim achanger As Worksheet
Dim cellule As Range
'
' Sélection de la cellule de départ
'==================================
'
On Error GoTo Erreur_debut
continuer = True
'Load UF1_Selection
'UF1_Selection.Caption = "Séparation des données"
'UF1_Selection.UF1_Texte.Caption = "Sélectionner la première cellule à scinder"
'UF1_Selection.Show
'If continuer Then
' If Range(UF1_Selection.UF1_Premiere_cellule.Value).Count = 1 Then
' ligne = Range(UF1_Selection.UF1_Premiere_cellule.Value).Row
' colonne = Range(UF1_Selection.UF1_Premiere_cellule.Value).Column
' Range(UF1_Selection.UF1_Premiere_cellule.Value).Select
' Else
' MsgBox "Merci de ne sélectionner qu'une cellule", vbExclamation + vbOKOnly, "Erreur de sélection"
' GoTo Fin
' End If
'Else
' GoTo Fin
'End If
'Unload UF1_Selection
Set cellule = Application.InputBox( _
Prompt:="Sélectionner la première cellule à scinder", _
Title:="Séparation des données", _
Type:=8 _
)
If continuer Then
If cellule.Count = 1 Then
ligne = cellule.Row
colonne = cellule.Column
cellule.Select
Else
MsgBox "Merci de ne sélectionner qu'une cellule", vbExclamation + vbOKOnly, "Erreur de sélection"
GoTo Fin
End If
Else
GoTo Fin
End If
'
' Traitement des données
'=======================
'
' Désactivation de la mise à jour à l'écran
'------------------------------------------
Application.ScreenUpdating = False
'
While ActiveCell.Text <> Empty
If IsError(ActiveCell.Value) Then
ActiveCell.Offset(1, 0).Activate
ligne = ligne + 1
Else
Contenu = Split(ActiveCell.Value, Chr(10))
NbLigne = UBound(Contenu)
If NbLigne > 0 Then
With ActiveSheet
Range(.Cells(ligne, 1), .Cells(ligne, colonne)).Copy
Range(.Cells(ligne + 1, 1), .Cells(ligne + NbLigne, colonne)).Insert shift:=xlDown
.Cells(ligne, colonne).Select
Application.CutCopyMode = False
End With
With ActiveCell
For i = 0 To NbLigne
.Offset(i, 0).Value = Contenu(i)
Next i
End With
End If
ActiveCell.Offset(NbLigne + 1, 0).Activate
ligne = ligne + NbLigne + 1
End If
Wend
Range("A1").Select
'
' Réactivation de la mise à jour à l'écran
'-----------------------------------------
Application.ScreenUpdating = True
GoTo Fin
'
Erreur_debut:
MsgBox "La sélection est incorrecte" & Chr(10) & "Veuillez réessayer", vbExclamation + vbOKOnly, "Erreur de sélection"
'
Fin:
'
End Sub


Merci d'avance de votre aide


9 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 194
Modifié par lermite222 le 21/10/2013 à 15:20
Une sélection multiple c'est par exemple de A1 à A10
Discontinue c'est par exemple de A1 à A10 et A21 et A27 etc..ce qu'ont obtient en maintenant la touche Ctrl enfoncée (au cas ou tu l'ignorerais)

Je proposais ça parce que si tu a beaucoup de cellules à changer ça risque d'être pénible de faire cellule par cellule.

Et pourquoi changer le Chr(10) par un point-virgule ? autant travailler directement sur les espaces ?

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 194
18 oct. 2013 à 14:27
Bonjour,
    Contenu = Split(ActiveCell.Value, ";")  
A+
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 194
18 oct. 2013 à 17:40
Éventuellement et si ça t'intéresse j'ai fait une méthode qui permet...
1°) d'agir sur une sélection multiple
2°) d'agir sur une sélection multiple discontinue.
3°) autorise les cellules vides dans la sélection.
Tu dis.
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
21 oct. 2013 à 08:39
Euh... comment te dire... je ne suis pas blonde... mais je suis comment on appel communement un peu un... kinder...

Va falloir m'expliquer ce que ça veut dire plus precisement... s'il te plait :)

Merci :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 194
Modifié par lermite222 le 21/10/2013 à 12:59
réponse 1
changer la ligne
Contenu = Split(ActiveCell.Value, Chr(10))
par
Contenu = Split(ActiveCell.Value, ";")
C'est plus .. kinder ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
21 oct. 2013 à 13:46
Merci pour ton aide.

par contre euh... je ne l'ai pas encore tester mais daprès ce que je comprend (ce qui nous le savons tous, n'est pas tres lourd...) c'est la réponse à ma question initiale ça non?
Changer le Chr(10) (qui par déduction veux dire retour à la ligne à l'interieur d'une cellule) par le ";"

Mais euh... ca ne me dit pas quel serai le resultat avec la methode dont tu m'as parlé... :)

Kinder oui et fière de l'être... mais aussi très curieuse lol
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 194
21 oct. 2013 à 14:57
Kinder... ça me dis rien mais ça doit pas être fort folichon :-)
cependant, j'ai modifier ma macro précédente pour mettre "; " à la place du retour à la ligne
Faudrait savoir EXACTEMENT ce que tu veux ?
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
21 oct. 2013 à 15:06
une brune kinder c'est un fille brune à l'exterieur et blonde à l'interieur lol
un peu comme un oeuf kinder lol

et qui n'est jamais a cours de surprise lol (pas toujours bonne faut l'avouer lol)

En général elles comprennent vite mais faut leur expliquer longtps lol


oui j'ai vu ca et je ten remercie, mais tu me parlais d'une méthode avec la quelle il était possible de faire 3 choses :
Éventuellement et si ça t'intéresse j'ai fait une méthode qui permet...
1°) d'agir sur une sélection multiple
2°) d'agir sur une sélection multiple discontinue.
3°) autorise les cellules vides dans la sélection.
Tu dis.

est ce que tu peux m'expliquer ce que rendrais le 2°) d'agir sur une sélection multiple discontinue.
Je ne comprend pas ce que ca peut donner...

Merci
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
21 oct. 2013 à 15:52
Actuellement la macro travail sur une selection multiple mais pas discontinue et je ne crois pas qu'elle ignore les vides.

donc oui je veux bien si c'est possible et si ca ne te demande pas trop de temps.

Je travail avec des point virgule car ces une demande du fournisseur qui va traiter la demande (jusqu'a maintenant je ne travaillais que sur les Chr(10).


En tout cas merci pour tout.
0