Recupération d'une partie de cellule - Excel

mRF -  
 mRF -
Bonjour,

Voila je vous présente ma difficulté :

Ma cellule est composé comme ceci : 07,01,012
Je dois récuperer la valeur 01 dans cette exemple.

test = Columns("C").Find(numSemaine, After:=[C2]).Value

J'ai essayer ceci avec différentes variantes mais impossible de récuperer la bonne valeur...

Si quelqu'un peut m'aider je suis preneur.

Cordialement mRF
A voir également:

12 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 281
 
Bonjiour,

tout dépend de la régularité du format de ta valeur.
si elle est tjs du format xx,yy,zzz
test = Mid([C2].Value, 3, 2)

si xx peut varier en longueur il faut rechercher la position de la , et prendre 2 car. à partir de 1 car. plus loin:
test = Mid([C2].Value, InStr([C2].Value, ",") + 1, 2)

si la longueur de yy peut aussi varier, sur le même principe il faudrait rechercher la position de la 2nde , avec un autre instr() et calculer la longueur à extraire

eric
0
mRF
 
Oui je confirme elle est toujours de ce type la (xx, yy,zzz). Je vais tester ta solution.
Merci d'avance
0
phil232 Messages postés 610 Statut Membre 178
 
test = split([C2], ",")

semaine = test(1)
0
mRF
 
For Each Rw In Selection.Rows
test = Mid([C2].Value, 3, 2)
'MsgBox test

If Val(test) = Val(numSemaine) Then
If Val(Rw.Cells(1, 5).Value) = Val(numDCS) Then
Rw.EntireRow.Copy Destination:=Worksheets("resultat").Cells(ligne + 2, 1)
ligne = ligne + 1
End If
End If
Next Rw

Voici mon code. Auparavant j'effectue une selection sur une feuille. Je saisie un numéro semaine (qui correspond au 01 dans cette cellule ( 07,01,012 )) ainsi qu'un numéro de bureau.

Lorsque les conditions sont respectées, je copie les lignes apropriées sur une autre feuille (resultat).
J'espère que mes explications sont claires...
0

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

Posez votre question
mRF
 
En effet phil, ta solution marche pour une cellule mais je ne vois pas comment je peux l'adapter à toute ma selection... Quelqu'un aurait il une idée?
0
phil232 Messages postés 610 Statut Membre 178
 
for i = 1 to rangeLimit
test = split(["C" & i], ",")
semaine = test(1)
next
0
mRF
 
Humm, cela ne marche pas. La boucle tourne en non stop. J'ai essayé d'afficher semaine, aucun résultat. Voici le code que jai esayer :

For Each Rw In Selection.Rows
For i = 1 To rangeLimit
test = Split(["C" & i], ",")
semaine = test(1)

If semaine = Val(numSemaine) Then
If Val(Rw.Cells(1, 5).Value) = Val(numDCS) Then
Rw.EntireRow.Copy Destination:=Worksheets("resultat").Cells(ligne + 2, 1)
ligne = ligne + 1
End If
End If
Next
Next Rw

J'ai essayer de mettre le next avant le 1er if également.
0
phil232 Messages postés 610 Statut Membre 178
 
"for i = 1 to rangeLimit "

mais punaise je ne te fais pas tout coupé et arrangé sur une tablette en or

reflechis un peu. je ne connais ni la limite de ton range ni comment tu l'as défini (selection, cellule, row, column...), c'est toi qui dois la mettre. il ne suffit pas de foutre une variable rangeLimit dans le code pour avoir la limite du range

puis tu boucle sur les rows, logiquement c'est donc pas "C" & i car i c'est les colonnes :((
prends le manuel est informe toi
faut peut-être essayer range(i, 1) au lieu de C1, C2 que sais-je

:((
0
mRF
 
Bah écoute, c'est pas avec l'aide excel que je vais aller loin mais bon, j'ai effectuer plusieurs tests mais je n'ai pas trouver la bonne solution. Merci quand même.
0
mRF
 
Si quelqu'un voit comment je peux faire, sa m'aiderai beaucoup.
0
mRF
 
Je viens de trouver une autre solution : Je vais lancer, au démarage de mon classeur Excel, la copie du numSemaine dans une autre cellule.

Sheets("recap").Select
For i = 1 To 200

test = Split(["C" & i+2], ",")
numS = test(1)

If Val(numS) <> "" Then
MsgBox numS
Worksheets("recap").Cells(i, 4).Value = Val(numS)
End If
Next

Voici mon code... Sa ne marche pas, il y a une erreur au niveau de la 3ème ligne...
0
mRF
 
C'est une erreur d'incompatibilité à cette ligne : test = Split(["C" & i+2], ",")
Je dois déclarer test et numS de quel type!?

Je débute...Merci de votre compréhension.

Cordialement mRF
0