Sub Nettoie()
' Supprime les lignes inutiles ( tout du moins essaye ! )
For i = 1 To UBound(T)
If _
T(i, 1) Like "*Contrats*" Or _
T(i, 1) Like "*Page*" Or _
T(i, 1) Like "*PARIS*" Or _
T(i, 1) Like "*Tournée*" _
Then
T(i, 1) = "": T(i, 2) = "": T(i, 3) = ""
End If
Next i
End Sub
Il se produit çaBonjour,
Peut être en modifiant cette ligne :
On regarde non pas les colonnes A et C mais les colonnes B et C.VB:ElseIf T(N, 2) <> "" And T(N, 3) <> "" Then
Sub Découpe(C$)
' Entrée : T 31/10/2024 N° 400118839
' Typ="T" Ech=31/10/2024 Contrat=400118839
On Error GoTo FinDecoupe
Typ = Left(C, 1)
Ech = Mid(C, 3, 10)
Contrat = Split(C, "N°")(1)
FinDecoupe:
End Sub
J'ai filtré la colonne A sur les cellules vides que j'ai rempli avec "Sté", ça marche mais c'est fastidieux.Re,
Dans votre fichier un N) de contrat ne comporte pas "N° " mais probablement "N°".
Essayez cette PJ.
Si ça ne marche pas, mettez votre fichier en ligne.
J'ai modifié Découpe :
VB:Sub Découpe(C$) ' Entrée : T 31/10/2024 N° 400118839 ' Typ="T" Ech=31/10/2024 Contrat=400118839 On Error GoTo FinDecoupe Typ = Left(C, 1) Ech = Mid(C, 3, 10) Contrat = Split(C, "N°")(1) FinDecoupe: End Sub
Qu'entendez vous par "changement de page" ?la dernière correction entraine des erreurs à chaque changement de page
Comment splitter sur "N°" au lieu de "N° " peut il entrainer des erreurs ?Sinon, la dernière correction entraine des erreurs
Dans le logiciel d'origine, il y a une sorte de mise en forme pour l'impression, à chaque changement de page on a ça :Re,
Je ne comprends pas, votre fichier n'a rien à voir avec la structure du fichier initial.
Il n'y a plus de nom, de genre, de dates et n'a que 5 colonnes au lieu de 6.
Est il le résultat d'un filtrage ?
Qu'entendez vous par "changement de page" ?
Comment splitter sur "N°" au lieu de "N° " peut il entrainer des erreurs ?
Si la colonne C est bien de type "D 31/01/2026 N° 255462818" on ne peut pas avoir d'erreur, cela donne le même résultat.
Je n'y comprends plus rien.
Pardon, oui j'ai filtré sur les erreurs rencontréesRe,
Je ne comprends pas, votre fichier n'a rien à voir avec la structure du fichier initial.
Il n'y a plus de nom, de genre, de dates et n'a que 5 colonnes au lieu de 6.
Est il le résultat d'un filtrage ?
Qu'entendez vous par "changement de page" ?
Comment splitter sur "N°" au lieu de "N° " peut il entrainer des erreurs ?
Si la colonne C est bien de type "D 31/01/2026 N° 255462818" on ne peut pas avoir d'erreur, cela donne le même résultat.
Je n'y comprends plus rien.
Et c'est maintenant que vous le dites ?Dans le logiciel d'origine, il y a une sorte de mise en forme pour l'impression,
Désolé, c'est ce que je suis en train de préparerEt c'est maintenant que vous le dites ?
Comment pouvais je le savoir ?
La structure du fichier est fondamental dans ce genre d'exercice puisque c'est lui qui définit le filtrage.
Vous auriez un petit fichier test vraiment représentatif ?
Cela risque de faire reprendre la macro au début.
Je ne pense pas que tout doive être repris, la ligne dont je vous parle apparaissait déjà dans le 1er fichier que j'ai postéDésolé, c'est ce que je suis en train de préparer
Je ne pense pas que tout doive être repris, la ligne dont je vous parle apparaissait déjà dans le 1er fichier que j'ai posté
Sub Nettoie()
' Supprime les lignes inutiles ( tout du moins essaye ! )
For i = 1 To UBound(T)
If _
T(i, 1) Like "*Contrats*" Or _
T(i, 1) Like "*Page*" Or _
T(i, 1) Like "*PARIS*" Or _
T(i, 1) Like "*Tournée*" _
Then
T(i, 1) = "": T(i, 2) = "": T(i, 3) = ""
End If
Next i
End Sub
Super, ça a l'air de fonctionner, je le teste à nouveau demain matin, je vous tiens au courantJ'ai trouvé.
Quand je "nettoyais" la base j'effaçais seulement la première cellule. Ensuite j'utilisais cette cellule pour le filtrage.
Mais comme avec la dernière modif j'utilise non pas les cellules A et B, mais B et C, le nettoyage n'avait plus d'effet.
Maintenait j'efface les cellules A,B,C lors du nettoyage avec :
C'est ce qu'on appelle un effet de bord.VB:Sub Nettoie() ' Supprime les lignes inutiles ( tout du moins essaye ! ) For i = 1 To UBound(T) If _ T(i, 1) Like "*Contrats*" Or _ T(i, 1) Like "*Page*" Or _ T(i, 1) Like "*PARIS*" Or _ T(i, 1) Like "*Tournée*" _ Then T(i, 1) = "": T(i, 2) = "": T(i, 3) = "" End If Next i End Sub
Sorry.
Faites un feedback, en espérant qu'il sera positif.