mimi_939
Messages postés50Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention 3 août 2007
-
31 juil. 2007 à 12:10
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
2 août 2007 à 00:14
Bonjour,
j'aurai voulu savoir s'il était possible d'avoir les champs d'une cellule excel (séparés par une entrée à la ligne) séparemment.
En fait, dans une cellule excel, j'ai le nom de plusieurs personnes séparés par une entrée à la ligne.
Dans une macro, j'ai besoin d'effectuer un traitement pour chacun de ces noms.
Je ne sais pas comment faire ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 31 juil. 2007 à 13:04
salut,
oui, je pense que Ju a raison (salut Julien).
Je précise juste que le caractère 'délimiter' (afin de splitter) est le Chr(10) [et pas le vbNewLine ou vbCrLf] pour une cellule excel
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 31 juil. 2007 à 14:08
Salut,
Je préciserai que vbCrLf fonctionne pour la mise en forme dans une cellule Excel
Mais pas pour le rechercher dans une cellule ou il faut effectivement utiliser Chr(10)
JML
Partageons notre savoir et nos acquis
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 31 juil. 2007 à 14:15
salut JML,
beh moi j'ai pas de chance sur ce genre de chose... Là je suis sur un pc (je viens de vérifier) qui atteste tes dires.
Par contre, sur mon pc, j'ai le petit carré !! Ca doit dépendre d'une config
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 31 juil. 2007 à 14:23
salut Mortalino,
En fait j'ai eu aussi ce souci mais je ne saurai te dire quand et comment il a été résolu
j'utilise excel 2003 mais au moins 2 fois par semaine il y a des patchs qui s'installent sur le Pc !!!
Bonne journée
JML
Partageons notre savoir et nos acquis
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 31 juil. 2007 à 14:34
Possible, vu que jai bloqué les MAJ de Microsoft ^^
A la limite, je réactiverai le temps de faire les MAJ, on verra bien si ça change quelque chose.
bonne journée également
mimi_939
Messages postés50Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention 3 août 2007 1 août 2007 à 10:54
Split renvoie un tableau donc si je récupère le résultat de la fonction Split dans un tableau, comment accéder au iè élément de ce tableau.
En fait mon problème est de récupérer dans un tableau ce que renvoie la fonction Split.
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 1 août 2007 à 11:36
J'sais pas mais si le but c'est d'exploiter des listes de noms dans une cellule, peut être qu'une boucle sur le contenu de la cellule en recherchant (Chr(10) jusqu'au dernier caractère devrait faire l'affaire
Ou alors j'ai perdu le fil depuis le message initial. Si c'est le cas j'ai bien besoin de ces vacances qui commencent ce soir
JML
Partageons notre savoir et nos acquis
mimi_939
Messages postés50Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention 3 août 2007 1 août 2007 à 11:43
Dim i As Integer
Dim tabDest() As String
tabDest = Split(Range("AL" & Selection.Row), Chr(10))
Do While tabDest(i) <> "" ...
Voila le début de mon code.
Apparemment le compilateur n'accepte pas : il me dit que l'indice i n'appartient pas à la sélection ???
J'ai besoin d'exploiter chaque élément du tableau renvoyé par Split, à part.
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 1 août 2007 à 14:14
Avec Split j'sais pas mais ça ça marche
______________________
Option Explicit
Sub JML_Test()
Dim I As Integer, TabDest() As String, FinCellule As Boolean, ChaineDeDonnee, DebLectChaine
Range("A1").Select
FinCellule = False
DebLectChaine = 1
ChaineDeDonnee = ActiveCell.Value
Do While FinCellule = False
If InStr(DebLectChaine, ChaineDeDonnee, Chr(10)) > 0 Then
I = I + 1
ReDim Preserve TabDest(I)
TabDest(I) = Mid(ChaineDeDonnee, DebLectChaine, InStr(DebLectChaine, ChaineDeDonnee, Chr(10)) - DebLectChaine)
DebLectChaine = 1 + InStr(DebLectChaine, ChaineDeDonnee, Chr(10))
End If
If DebLectChaine > Len(ChaineDeDonnee) Then
FinCellule = True
ElseIf InStr(DebLectChaine, ChaineDeDonnee, Chr(10)) = 0 Then
I = I + 1
ReDim Preserve TabDest(I)
TabDest(I) = Mid(ChaineDeDonnee, DebLectChaine, Len(ChaineDeDonnee))
FinCellule = True
End If
Loop
End Sub
Maintenant si c'est pour faire un tableau au lieu d'affecter dans un tableau tu peux directement affecter dans des cellules en faisant tourner les variables qui vont bien
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 1 août 2007 à 14:19
Avec Split j'sais pas mais ça ça marche
______________________
Option Explicit
Sub JML_Test()
Dim I As Integer, TabDest() As String, FinCellule As Boolean, ChaineDeDonnee, DebLectChaine
Range("A1").Select
FinCellule = False
DebLectChaine = 1
ChaineDeDonnee = ActiveCell.Value
Do While FinCellule = False
If InStr(DebLectChaine, ChaineDeDonnee, Chr(10)) > 0 Then
I = I + 1
ReDim Preserve TabDest(I)
TabDest(I) = Mid(ChaineDeDonnee, DebLectChaine, InStr(DebLectChaine, ChaineDeDonnee, Chr(10)) - DebLectChaine)
DebLectChaine = 1 + InStr(DebLectChaine, ChaineDeDonnee, Chr(10))
End If
If DebLectChaine > Len(ChaineDeDonnee) Then
FinCellule = True
ElseIf InStr(DebLectChaine, ChaineDeDonnee, Chr(10)) = 0 Then
I = I + 1
ReDim Preserve TabDest(I)
TabDest(I) = Mid(ChaineDeDonnee, DebLectChaine, Len(ChaineDeDonnee))
FinCellule = True
End If
Loop
End Sub
Maintenant si c'est pour faire un tableau au lieu d'affecter dans un tableau tu peux directement affecter dans des cellules en faisant tourner les variables qui vont bien