Donc, voilà ce que donne ce que j’ai fait :
Const INIT_LINE = 1 'N° de la ligne où commence le traitement (1ère ligne de données avec imageX.jpg)
Const MAX_LINES = 50 'Ici, tu mets le nombres de lignes qui seront à changer
Const WORKING_COL = 2 'N° de colonne à traiter (A = 1, B = 2, C = 3, etc…)
Dim AlreadyChanging As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CurrLine As Integer 'Compteur de la ligne courante
Dim CurrCarac As Integer 'Compteur du caractère courant dans la chaîne
Dim TextBeforeNb As String 'Chaîne de caractères se trouvant avant le n° de l’image
Dim TextAfterNb As String 'Chaine de caractères se trouvant après le n° de l’image
Dim AfterNb As Boolean
If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
If Target.Column = WORKING_COL And Not AlreadyChanging Then
If Target.Value <> Empty Then
AlreadyChanging = True
If Target.Row = INIT_LINE Then
CurrLine = INIT_LINE + 1
Else
CurrLine = INIT_LINE
End If
Do
If CurrLine <> Target.Row Then
AfterNb = False
TextBeforeNb = Empty
TextAfterNb = Empty
For CurrCarac = 1 To Len(Target.Value)
If Not IsNumeric(Mid(Target.Value, CurrCarac, 1)) Then
If Not AfterNb Then
TextBeforeNb = TextBeforeNb & Mid(Target.Value, CurrCarac, 1)
Else
TextAfterNb = TextAfterNb & Mid(Target.Value, CurrCarac, 1)
End If
Else
AfterNb = True
End If
Next CurrCarac
Cells(CurrLine, WORKING_COL).Value = TextBeforeNb & CStr(CurrLine) & TextAfterNb
End If
CurrLine = CurrLine + 1
Loop While CurrLine <= MAX_LINES
AlreadyChanging = False
End If
End If
End If
End Sub
Pour utiliser code, il te faut, depuis Excel, faire Alt + F11. Ca va ouvrir l’éditeur VBA.
Dans l’arborescence de gauche, tu choisis bien la feuille Excel où tu travailles en double cliquant dessus.
Tu colles le code tel quel sur la page qui se sera ouverte.
T’enregistre.
Et voilà !
Alors, c’est pas parfait, hein ?! Tout simplement car c’est très spécifique à ta demande.
Ca se contente de regarder si dans la colonne B (ou une autre, c’est défini par une constante), tu fais une modif’, je prends le texte qu’il y a dedans et je le copie dans X lignes (aussi définies en constante) à partir de la ligne Y (toujours définie en constante), le tout en faisant bien attention que dans la ligne 1, j’ai le n° 1, dans la ligne 2, j’ai le n°2, etc… si il y a 1 nombre dans ta chaîne de caractères !!
Sinon, ça risque d’être le grand n’importe quoi…
Je te laisse essayer, et si t’as des questions, ben reviens ici !
Edité le 06/06/2008 à 12:58