Cette application vise à changer rapidement la racine des comptes auxiliaires des fournisseurs et clients dans un FEC. Au lieu de réaliser cette tâche via un tableur, ce qui peut prendre de 5 à 10 minutes, vous pouvez le faire en 30 secondes !! Pour cela, laissez-vous guider par les numéros.
2
Section Frns
3
Section Clts
4
Zone de prévisualisation du FEC. Seules les colonnes relatives aux numéros de compte seront affichées.
5
Si vous souhaitez faire cette tâche dans Excel sans passer par le service ci-dessus, vous pouvez coller le code VBA ci-dessous :
Le pas à pas détaillé pour coller et executer le code :
Faites systématiquement une copie au préalable de votre FEC que vous avez reçu du client ou que vous avez éditez vous-même du logiciel du client, en cas d'erreur de manipulation, vous n'avez pas altérez l'original
Faites un clic droit sur le fichier txt (votre FEC) puis ouvrir avec Excel
A l'ouverture du fichier, vous aurez certainement un bandeau vous indiquant qu'il y a une perte de données potentielle, on s'en moque dans le cadre de cette procédure. l'impact est que la macro que vous allez copier par la suite ne sera pas enregistrée.
Une fois ouvert, vous remarquerez que les données ne sont pas bien ventilées par colonnes, donc il faut le faire
Sélectionner la colonne A en cliquant sur la colonne A
Allez dans l'onglet Données puis convertir
Première étape de la conversion, veillez à ce que Délimité soit coché, toujours le cas par défaut puis suivant
Etape 2 conversion : cliquer sur le séparateur qui convient à votre FEC, si vous ne savez pas, selectionnez les options et regardez si la ventilation dans les colonnes se fait dans l'espace de prévisualisation. Dans l'image ci-dessous, c'est un cas assez exotique puisqu'il s'agit de la barre verticale ou "PIPE" que l'on fait sur PC avec altGr + 6 (au dessus de la lettre T) et sur mac avec maj+Control+L
Par la suite, cliquer sur suivant puis fin
Les données sont désormais ventilées par colonnes
Faites un clic droit sur votre feuille et faites afficher le code...
Cela ouvrira VBA et vous pourrez coller le code.
Avant d'éxécuter la macro, regardez a quoi ressemble les comptes auxiliaires. Cas d'espèces :
Je constate que les comptes auxiliaires pour les fournisseurs commencent par 9 et que pour les clients, cela commence par 0 Donc, je renseignerai 9 pour les fournisseurs et 0 pour les clients . Maintenant que j'ai pris connaissance du contexte, j'execute la macro
Ci-dessous, les deux prochaines images montrent le traitement pour les fournisseurs, repeter le processus avec les clients.
Le résultat
Option Explicit
Sub modifierComptesAux()
Dim ws As Worksheet
Dim lastRow As Long, i As Long
Dim xFournisseur As Integer, yFournisseur As String
Dim xClient As Integer, yClient As String
Dim racineFournisseur As String, racineClient As String
'Def feuille Active
Set ws = ActiveSheet
'Trouver la dernière ligne utilisée dans la colonne G
lastRow = ws.Cells(Rows.Count, "G").End(xlUp).Row
'Etape 1 : Modification pour les fournisseurs
racineFournisseur = InputBox("[FOURNISSEURS] Entrez la racine des comptes auxiliaires fournisseurs (ex: 401) :", "Racine du compte fournisseur")
racineFournisseur = Trim(racineFournisseur)
'Vérification de l'entrée utilisateur
If racineFournisseur = "" Then
MsgBox "Veuillez entrer une racine valide pour les fournisseurs.", vbExclamation
Exit Sub
End If
'Calcul du nombre de caractère a retirer
xFournisseur = Len(racineFournisseur)
'demander la nouvelle racine à l'utilisateur
yFournisseur = InputBox("[FOURNISSEURS] Entrez la nouvelle racine des comptes auxiliaires fournisseurs :", "Nouvelle racine du compte")
yFournisseur = Trim(yFournisseur)
'Vérification de l'entrée utilisateur
If yFournisseur = "" Then
MsgBox "Veuillez entrer une nouvelle racine valide pour les fournisseurs.", vbExclamation
Exit Sub
End If
'Etape 2 : Modifications pour les clients
racineClient = InputBox("[CLIENTS] Entrez la racine des comptes auxiliaires fournisseurs (ex: 411) :", "Racine du compte client")
racineClient = Trim(racineClient)
'Vérification de l'entrée utilisateur
If racineClient = "" Then
MsgBox "Veuillez entrer une racine valide pour les clients.", vbExclamation
Exit Sub
End If
'Calcul du nombre de caractères à retirer
xClient = Len(racineClient)
'Demander les caractères à ajouter au début
yClient = InputBox("[CLIENTS] Entrez la nouvelle racine des comptes auxiliaires fournisseurs :", "Nouvelle racine du compte")
yClient = Trim(yClient)
'Vérification de l'entrée utilisateur
If yClient = "" Then
MsgBox "Veuillez entrer une nouvelle racine valide pour les clients.", vbExclamation
Exit Sub
End If
'Etape 3 :les boucles
'On boucle sur les fournisseurs
For i = 2 To lastRow
If ws.Cells(i, "E").Value Like "401*" Then
If Len(ws.Cells(i, "G").Value) >= xFournisseur Then
ws.Cells(i, "G").Value = yFournisseur & Mid(ws.Cells(i, "G").Value, xFournisseur + 1, Len(ws.Cells(i, "G").Value) - xFournisseur)
End If
End If
Next i
'On boucle sur les clients
For i = 2 To lastRow
If ws.Cells(i, "E").Value Like "411*" Then
If Len(ws.Cells(i, "G").Value) >= xClient Then
ws.Cells(i, "G").Value = yClient & Mid(ws.Cells(i, "G").Value, xClient + 1, Len(ws.Cells(i, "G").Value) - xClient)
End If
End If
Next i
MsgBox "Modifications terminées pour les racines auxiliaires fournisseurs et clients", vbInformation
End Sub