Creation d'une macro excel modifiant des carateres
babyshaq11
Messages postés6Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention 5 juin 2008
-
2 juin 2008 à 09:52
babyshaq11
Messages postés6Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention 5 juin 2008
-
2 juin 2008 à 14:07
Bonjour,
Je dois créer une macro-commande sur Excel permettant de modifier des caractères automatiquement mais je ne sais pas comment.
Par exemple j'ai ce document:
PMO|29||33937998401008|3|060930255001|déversoir en tète de stat|A2||||||||||||
PMO|31||33937998401008|3|060930255001|Entrée Station |A3||||||||||||
PMO|32||33937998401008|3|060930255001|sortie station |A4||||||||||||
PMO|41||33937998401008|3|060930255001|boues produites avant tra|A6||||||||||||
PMO|5||33937998401008|3|060930255001|Graisses évacuées sans tr|A9||||||||||||
PMO|6||33937998401008|3|060930255001|Sable produit évacué|A10||||||||||||
PMO|7||33937998401008|3|060930255001|Refus dégrillage produit |A11||||||||||||
Il faut que je change A2 en S2, A3 en S3 et ca pour plusieurs documents. Ces caractères sont toujours placer au même endroit. <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Par exemple :
PMO|29||33937998401008|3|060930255001|déversoir en tète de stat|S2||||||||||||
PMO|31||33937998401008|3|060930255001|Entrée Station |S3||||||||||||
PMO|32||33937998401008|3|060930255001|sortie station |S4||||||||||||
PMO|41||33937998401008|3|060930255001|boues produites avant tra|S6||||||||||||
PMO|5||33937998401008|3|060930255001|Graisses évacuées sans tr|S9||||||||||||
PMO|6||33937998401008|3|060930255001|Sable produit évacué|S10||||||||||||
PMO|7||33937998401008|3|060930255001|Refus dégrillage produit |S11||||||||||||
Ce sont des fichiers texte (.txt) au format Sandre, ils s'ouvrent avec un logiciel de traitement de texte.
Merci de votre aide.
A voir également:
Creation d'une macro excel modifiant des carateres
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 2 juin 2008 à 10:09
Salut,
C'est pas très clair mais bon pour un lundi matin on peut essayer ça :
mémorise une macro et exécute Remplacer "|A2|" par "|S2|"
Normalement cela devrait le faire
Cliquer "Réponse Acceptée" Partageons Notre Savoir & Nos Acquis - JML<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
babyshaq11
Messages postés6Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention 5 juin 2008 2 juin 2008 à 10:16
Je l'ai deja fait mais ca me met plein d'erreur.
En faite il faudrai que des que j'ouvre le document je clique sur un bouton ou la macro est associé et que ca me modifier tout les caracteres.
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 2 juin 2008 à 10:27
Quel type d'erreurs ?
Tu peux même rêver d'une macro qui s'exécute automatiquement à l'ouverture du fichier ... Voir les possibilité dans le module
"ThisWorkbook"
Sub Workbook_Open()
Cliquer "Réponse Acceptée"Partageons Notre Savoir & Nos Acquis - JML<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
On Error Resume Next
Open sPath For Input As #FF
sBuffer = Input(LOF(FF), #FF)
Close #FF
If Not (Err.Number = 0) Then Exit Function
aLines = Split(sBuffer, vbNewLine)
For i = 0 To UBound(aLines)
aCols = Split(aLines(i), sSepar)
If i = 0 Then ReDim aRes(UBound(aLines), UBound(aCols))
For j = 0 To UBound(aCols)
aRes(i, j) = aCols(j)
Next j
Next i
GetColumnsFromFile = aRes
Erase aLines: Erase aCols: Erase aRes
End Function
Private Sub SetColumnsToFile(ByRef saArr() As String, ByVal sPath As String, Optional ByVal sSepar As String = ";")
Dim i As Integer, j As Integer, s As String, FF As Integer
FF = FreeFile
Open sPath For Output As #FF
For i = 0 To UBound(saArr)
s = vbNullString
For j = 0 To UBound(saArr, 2)
s = s & saArr(i, j) & sSepar
Next j
Print #FF, Left$(s, Len(s) - Len(sSepar))
Next i
Close #FF
End Sub
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 2 juin 2008 à 11:45
Imagine
Une feuille "Correspondance" ou tu gères les correspondances:
A B
1 A3 S16
2 A5 S12
3 etc
3 variables qui feraient la ronde dans une boucle
ValCherche , ValRemplace, I , NbLg
' Une boucle
NbLg= Nombre de lignes à traiter
For I= 1 to NbLg
ValCherche = Sheets("Correspondance").Cells(I, 1)
ValRemplace = Sheets("Correspondance").Cells(I, 2)
ActiveCell.Replace What:=ValCherche, Replacement:=ValRemplace, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next I
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 2 juin 2008 à 12:01
Ce qui serait bien, c'est que tu y mettes un peu les formes !!! On prends du temps et de la peine pour donner un coup de main ... Alors relis mes posts précédents - si c'est a moi que s'adresse ta question - et tu trouveras la réponse