le chiffre apr=C3=A8s 140T varie de 6 =C3=A0 23, le chiffre entre les tiret=
s varie de 1 =C3=A0 675, et le num=C3=A9ro d'image est =C3=A0 1 ou 2 chiffr=
es significatifs, exemple 140T22_550_0026.jpg
Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de =
la derniere vue =C3=A0 chaque variation du chiffre entre tirets.
exemple 140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes diff=C3=A9rent=
es si possible.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour, Ce serait plus facile et rapide avec une macro. Qu'en penses-tu ? Cordialement. Daniel
bonjour j'ai un tableau sous excel 2010 avec des noms de vues (+9000 environ) sous cette forme : 140T6_1_0001.jpg 140T6_1_0002.jpg 140T6_1_0003.jpg 140T6_1_0004.jpg 140T6_11_0001.jpg 140T6_11_0002.jpg 140T6_11_0003.jpg 140T6_11_0004.jpg 140T6_11_0005.jpg 140T6_11_0006.jpg 140T6_11_0007.jpg 140T6_11_0008.jpg 140T6_12_0001.jpg 140T6_12_0002.jpg 140T6_12_0003.jpg 140T6_12_0004.jpg 140T6_12_0005.jpg 140T6_12_0006.jpg 140T6_12_0007.jpg 140T6_15_0001.jpg 140T6_15_0002.jpg 140T6_15_0003.jpg 140T6_15_0004.jpg 140T6_15_0005.jpg 140T6_15_0006.jpg etc le chiffre après 140T varie de 6 à 23, le chiffre entre les tirets varie de 1 à 675, et le numéro d'image est à 1 ou 2 chiffres significatifs, exemple 140T22_550_0026.jpg Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de la derniere vue à chaque variation du chiffre entre tirets. exemple 140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes différentes si possible. Une idée ? Merci
Bonjour,
Ce serait plus facile et rapide avec une macro. Qu'en penses-tu ?
Cordialement.
Daniel
bonjour
j'ai un tableau sous excel 2010 avec des noms de vues (+9000 environ) sous
cette forme :
le chiffre après 140T varie de 6 à 23, le chiffre entre les tirets varie de 1
à 675, et le numéro d'image est à 1 ou 2 chiffres significatifs, exemple
140T22_550_0026.jpg
Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de la
derniere vue à chaque variation du chiffre entre tirets. exemple
140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes différentes si possible.
Bonjour, Ce serait plus facile et rapide avec une macro. Qu'en penses-tu ? Cordialement. Daniel
bonjour j'ai un tableau sous excel 2010 avec des noms de vues (+9000 environ) sous cette forme : 140T6_1_0001.jpg 140T6_1_0002.jpg 140T6_1_0003.jpg 140T6_1_0004.jpg 140T6_11_0001.jpg 140T6_11_0002.jpg 140T6_11_0003.jpg 140T6_11_0004.jpg 140T6_11_0005.jpg 140T6_11_0006.jpg 140T6_11_0007.jpg 140T6_11_0008.jpg 140T6_12_0001.jpg 140T6_12_0002.jpg 140T6_12_0003.jpg 140T6_12_0004.jpg 140T6_12_0005.jpg 140T6_12_0006.jpg 140T6_12_0007.jpg 140T6_15_0001.jpg 140T6_15_0002.jpg 140T6_15_0003.jpg 140T6_15_0004.jpg 140T6_15_0005.jpg 140T6_15_0006.jpg etc le chiffre après 140T varie de 6 à 23, le chiffre entre les tirets varie de 1 à 675, et le numéro d'image est à 1 ou 2 chiffres significatifs, exemple 140T22_550_0026.jpg Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de la derniere vue à chaque variation du chiffre entre tirets. exemple 140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes différentes si possible. Une idée ? Merci
Michd
Bonjour, En supposant que toutes tes données sont en ordre croissant comme dans ton exemple, Le résultat s'affiche dans les 2 colonnes à droite de la plage de cellules. '------------------------------------------------------------ Sub test() Dim D As Object, B As Long, A As Long Dim Rg As Range, C As Range 'Nom de l'onglet de la feuille et l'adresse de la 'plage de cellules à adapter. With Worksheets("Feuil1") Set Rg = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Set D = CreateObject("Scripting.dictionary") Application.ScreenUpdating = False Application.EnableEvents = False B = 1 For Each C In Rg If Not D.Exists((Split(C, "_")(1))) Then D.Add Split(C, "_")(1), C.Row If A = 0 Then Rg(B).Offset(, 1).Value = Rg(B, 1).Value A = A + 1 Else Rg(B, 1).Offset(-1, 2).Value = Rg(C.Row, 1).Offset(-2).Value Rg(B, 1).Offset(, 1).Value = Rg(C.Row, 1).Offset(-1).Value End If B = B + 1 End If If C.Row = Rg(Rg.Rows.Count, 1).Row Then Rg(B, 1).Offset(-1, 2).Value = Rg(C.Row, 1).Offset(-1).Value End If Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------------------------ MichD "jip" a écrit dans le message de groupe de discussion : bonjour j'ai un tableau sous excel 2010 avec des noms de vues (+9000 environ) sous cette forme : 140T6_1_0001.jpg 140T6_1_0002.jpg 140T6_1_0003.jpg 140T6_1_0004.jpg 140T6_11_0001.jpg 140T6_11_0002.jpg 140T6_11_0003.jpg 140T6_11_0004.jpg 140T6_11_0005.jpg 140T6_11_0006.jpg 140T6_11_0007.jpg 140T6_11_0008.jpg 140T6_12_0001.jpg 140T6_12_0002.jpg 140T6_12_0003.jpg 140T6_12_0004.jpg 140T6_12_0005.jpg 140T6_12_0006.jpg 140T6_12_0007.jpg 140T6_15_0001.jpg 140T6_15_0002.jpg 140T6_15_0003.jpg 140T6_15_0004.jpg 140T6_15_0005.jpg 140T6_15_0006.jpg etc le chiffre après 140T varie de 6 à 23, le chiffre entre les tirets varie de 1 à 675, et le numéro d'image est à 1 ou 2 chiffres significatifs, exemple 140T22_550_0026.jpg Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de la derniere vue à chaque variation du chiffre entre tirets. exemple 140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes différentes si possible. Une idée ? Merci
Bonjour,
En supposant que toutes tes données sont en ordre croissant comme dans ton
exemple,
Le résultat s'affiche dans les 2 colonnes à droite de la plage de cellules.
'------------------------------------------------------------
Sub test()
Dim D As Object, B As Long, A As Long
Dim Rg As Range, C As Range
'Nom de l'onglet de la feuille et l'adresse de la
'plage de cellules à adapter.
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
Set D = CreateObject("Scripting.dictionary")
Application.ScreenUpdating = False
Application.EnableEvents = False
B = 1
For Each C In Rg
If Not D.Exists((Split(C, "_")(1))) Then
D.Add Split(C, "_")(1), C.Row
If A = 0 Then
Rg(B).Offset(, 1).Value = Rg(B, 1).Value
A = A + 1
Else
Rg(B, 1).Offset(-1, 2).Value = Rg(C.Row, 1).Offset(-2).Value
Rg(B, 1).Offset(, 1).Value = Rg(C.Row, 1).Offset(-1).Value
End If
B = B + 1
End If
If C.Row = Rg(Rg.Rows.Count, 1).Row Then
Rg(B, 1).Offset(-1, 2).Value = Rg(C.Row, 1).Offset(-1).Value
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'------------------------------------------------------------
MichD
"jip" a écrit dans le message de groupe de discussion :
53b5b0b4-f594-4cbf-835e-f640a81d1f09@googlegroups.com...
bonjour
j'ai un tableau sous excel 2010 avec des noms de vues (+9000 environ) sous
cette forme :
le chiffre après 140T varie de 6 à 23, le chiffre entre les tirets varie de
1 à 675, et le numéro d'image est à 1 ou 2 chiffres significatifs, exemple
140T22_550_0026.jpg
Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de
la derniere vue à chaque variation du chiffre entre tirets.
exemple 140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes différentes si
possible.
Bonjour, En supposant que toutes tes données sont en ordre croissant comme dans ton exemple, Le résultat s'affiche dans les 2 colonnes à droite de la plage de cellules. '------------------------------------------------------------ Sub test() Dim D As Object, B As Long, A As Long Dim Rg As Range, C As Range 'Nom de l'onglet de la feuille et l'adresse de la 'plage de cellules à adapter. With Worksheets("Feuil1") Set Rg = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Set D = CreateObject("Scripting.dictionary") Application.ScreenUpdating = False Application.EnableEvents = False B = 1 For Each C In Rg If Not D.Exists((Split(C, "_")(1))) Then D.Add Split(C, "_")(1), C.Row If A = 0 Then Rg(B).Offset(, 1).Value = Rg(B, 1).Value A = A + 1 Else Rg(B, 1).Offset(-1, 2).Value = Rg(C.Row, 1).Offset(-2).Value Rg(B, 1).Offset(, 1).Value = Rg(C.Row, 1).Offset(-1).Value End If B = B + 1 End If If C.Row = Rg(Rg.Rows.Count, 1).Row Then Rg(B, 1).Offset(-1, 2).Value = Rg(C.Row, 1).Offset(-1).Value End If Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------------------------ MichD "jip" a écrit dans le message de groupe de discussion : bonjour j'ai un tableau sous excel 2010 avec des noms de vues (+9000 environ) sous cette forme : 140T6_1_0001.jpg 140T6_1_0002.jpg 140T6_1_0003.jpg 140T6_1_0004.jpg 140T6_11_0001.jpg 140T6_11_0002.jpg 140T6_11_0003.jpg 140T6_11_0004.jpg 140T6_11_0005.jpg 140T6_11_0006.jpg 140T6_11_0007.jpg 140T6_11_0008.jpg 140T6_12_0001.jpg 140T6_12_0002.jpg 140T6_12_0003.jpg 140T6_12_0004.jpg 140T6_12_0005.jpg 140T6_12_0006.jpg 140T6_12_0007.jpg 140T6_15_0001.jpg 140T6_15_0002.jpg 140T6_15_0003.jpg 140T6_15_0004.jpg 140T6_15_0005.jpg 140T6_15_0006.jpg etc le chiffre après 140T varie de 6 à 23, le chiffre entre les tirets varie de 1 à 675, et le numéro d'image est à 1 ou 2 chiffres significatifs, exemple 140T22_550_0026.jpg Je souhaite extraire, pour utiliser dans un logiciel le nom de la 1e et de la derniere vue à chaque variation du chiffre entre tirets. exemple 140T6_1_0001.jpg et 140T6_1_0004.jpg dans 2 colonnes différentes si possible. Une idée ? Merci
jip
Le mercredi 25 avril 2018 20:36:41 UTC+2, Michd a écrit :
Bonjour, En supposant que toutes tes données sont en ordre croissant comme da ns ton exemple, Le résultat s'affiche dans les 2 colonnes à droite de la plage de cellules.
Bravo et merci, la macro fonctionne. Que de temps gagné. Merci encore
Le mercredi 25 avril 2018 20:36:41 UTC+2, Michd a écrit :
Bonjour,
En supposant que toutes tes données sont en ordre croissant comme da ns ton
exemple,
Le résultat s'affiche dans les 2 colonnes à droite de la plage de cellules.
Bravo et merci, la macro fonctionne.
Que de temps gagné.
Merci encore
Le mercredi 25 avril 2018 20:36:41 UTC+2, Michd a écrit :
Bonjour, En supposant que toutes tes données sont en ordre croissant comme da ns ton exemple, Le résultat s'affiche dans les 2 colonnes à droite de la plage de cellules.
Bravo et merci, la macro fonctionne. Que de temps gagné. Merci encore