Bonjour, je vais essayé d'etre le plus concis possible .
j'ai deux fichier excels, sur le premier j'ai 3 colonnes; ref, designation, qté.
Dans cette dernière j'ai une serie de chiffres suivi de 2 lettres (elles sont accollées)
ex : 235000BJ
j'ai besoin d'extraire seulement les chiffres et que les 2 derniers chiffres deviennent des décimales
ex : 2350,00
Une fois mon fichier "e;e;convertit"e;e; je dois le comparer avec un autre fichier de ref beaucoup plus consequent, pour mettre à jour ce dernier.
si déjà vous avez une solution pour la première étape, vous allez me redonner le sommeil, car actuellement je fais de la saisie manuelle, travail de ouf !!!!!!
*petite précision: il se peut que j'ai des qtés qui soient différents
ex: 24FG, 254BL, 352489HM dont après conversion; 0,24 , 2,54 , 3524,89
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Sélectionne la colonne affichant tes données Appelle la commande "Convertir" du menu donnée Choisis à la première fenêtre : Largeur fixe Dans la deuxième fenêtre, fais un clic sur la règle qui sépare les chiffres des 2 dernières lettres Dans la troisième fenêtre, Sélection la colonne 2 (lettres) dans le petit tableau et choisis l'option : "Colonne non distribuée" et appuis sur "terminer".
Maintenant tu saisis la valeur 100 dans une cellule vide, Tu copies cette cellule dans le presse-papier et tu fais un collage spécial sur l'ensemble de ta colonne de données en retenant : Valeur seulement et opération : division
L'enregistreur de macro va te donner presque l'intégralité du code!
Sélectionne la colonne affichant tes données
Appelle la commande "Convertir" du menu donnée
Choisis à la première fenêtre : Largeur fixe
Dans la deuxième fenêtre, fais un clic sur la règle qui sépare
les chiffres des 2 dernières lettres
Dans la troisième fenêtre, Sélection la colonne 2 (lettres) dans le petit
tableau et choisis l'option : "Colonne non distribuée"
et appuis sur "terminer".
Maintenant tu saisis la valeur 100 dans une cellule vide,
Tu copies cette cellule dans le presse-papier et tu fais
un collage spécial sur l'ensemble de ta colonne de données
en retenant : Valeur seulement et opération : division
L'enregistreur de macro va te donner presque l'intégralité du code!
Sélectionne la colonne affichant tes données Appelle la commande "Convertir" du menu donnée Choisis à la première fenêtre : Largeur fixe Dans la deuxième fenêtre, fais un clic sur la règle qui sépare les chiffres des 2 dernières lettres Dans la troisième fenêtre, Sélection la colonne 2 (lettres) dans le petit tableau et choisis l'option : "Colonne non distribuée" et appuis sur "terminer".
Maintenant tu saisis la valeur 100 dans une cellule vide, Tu copies cette cellule dans le presse-papier et tu fais un collage spécial sur l'ensemble de ta colonne de données en retenant : Valeur seulement et opération : division
L'enregistreur de macro va te donner presque l'intégralité du code!
Une autre approche si ta colonne n'est pas très grande :
'----------------------------------- Sub test() Dim C As Range With Worksheets("Feuil1") 'Nom feuille à adapter Set rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With Application.ScreenUpdating = False Application.enableeventsúlse On Error Resume Next For Each C In rg If C <> "" Then C.Value = Left(C, Len(C) - 2) / 100 End If Next Application.enableevents=true Application.ScreenUpdating = True End Sub '-----------------------------------
Une autre approche si ta colonne n'est pas très grande :
'-----------------------------------
Sub test()
Dim C As Range
With Worksheets("Feuil1") 'Nom feuille à adapter
Set rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
Application.ScreenUpdating = False
Application.enableeventsúlse
On Error Resume Next
For Each C In rg
If C <> "" Then
C.Value = Left(C, Len(C) - 2) / 100
End If
Next
Application.enableevents=true
Application.ScreenUpdating = True
End Sub
'-----------------------------------
Une autre approche si ta colonne n'est pas très grande :
'----------------------------------- Sub test() Dim C As Range With Worksheets("Feuil1") 'Nom feuille à adapter Set rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With Application.ScreenUpdating = False Application.enableeventsúlse On Error Resume Next For Each C In rg If C <> "" Then C.Value = Left(C, Len(C) - 2) / 100 End If Next Application.enableevents=true Application.ScreenUpdating = True End Sub '-----------------------------------