Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub ValideNomService() Application.StatusBar = "Mis à jour des services en cours..." Sheets("Base").Activate Range("A2").Select 'pour chaque cellule(cellule est une variable avec un nom explicite) dans la 1ère 'colonne de la plage nomée "bd_noms" For Each Cellule In ActiveSheet.Range("bd_noms").Columns(1).Cells 'Emplacement de stockage nommé contenant les données à modifier Dim i As Byte 'i représente la variable et renvoie une valeur de type long For i = 1 To Len(Cellule) 'Execute les instructions Mid servant à remplacer les caractères de la cellule Select Case Mid(Cellule, i, 1) 'si le nom comprend des caractères interdits -> espace Case ":", "/", "", "?", "*", "[", "]": Mid(Cellule, i, 1) = "_" End Select 'si le nom est trop long -> tronquer à 31 caractères If Len(Cellule) > 31 Then Cellule = Left(Cellule, 31) End If If Cellule "" Then Cellule "Sans nom" Next Next Application.StatusBar = False MsgBox "traitement terminé", vbInformation, "Mis à jour des services" End Sub
Mid(cellule, i, 1), ma variable ici c'est cellule. Mais dans ce cas, c'est avec mon instruction d'avant que ca bloque non?
'Emplacement de stockage nommé contenant les données à modifier Dim i As Byte 'i représente la variable et renvoie une valeur de type long For i = 1 To Len(Cellule)
For Each Cellule In ActiveSheet.Range("bd_noms").Columns(1).Cells msgbox cellule ' et tu le sauras et commenceras à yt voir plus clair...
Sub ValideNomService() Application.StatusBar = "Mis à jour des services en cours..." Sheets("Base").Activate Range("A2").Select 'pour chaque cellule(cellule est une variable avec un nom explicite) dans la 1ère 'colonne de la plage nomée "bd_noms" For Each Cellule In ActiveSheet.Range("bd_noms").Columns(1).Cells 'Emplacement de stockage nommé contenant les données à modifier MsgBox Cellule Dim i As Integer 'i représente la variable et renvoie une valeur de type long For i = 1 To Len(Cellule) 'Execute les instructions Mid servant à remplacer les caractères de la cellule Select Case Mid(Cellule, i, 1) 'si le nom comprend des caractères interdits -> espace Case ":", "/", "", "!", "?", "*", "[", "]": Mid(Cellule, i, 1) = " " End Select Next 'si le nom est trop long -> tronquer à 31 caractères If Len(Cellule) > 31 Then Cellule = Left(Cellule, 31) End If If Cellule "" Then Cellule "Sans nom" Next Application.StatusBar = False MsgBox "traitement terminé", vbInformation, "Mis à jour des services" End Sub
Select Case Mid(Cellule, i, 1) 'si le nom comprend des caractères interdits -> espace Case ":", "/", "", "!", "?", "*", "[", "]": Mid(Cellule, i, 1) = " " End Select Next
Ensuite j'observe que l'instruction ne passe pas à la cellule suivante