Extraite des valeurs avec une macro

margaux33

XLDnaute Nouveau
Extraire des valeurs par une macro

Je reçois régulièrement des fichiers selon feuille 1 mais avec d’autres informations dans les colonnes (pas toujours au même endroit) – Nombre de ligne imprévisible.
Je cherche une macro extraire : la première valeur à gauche, puis les deux premières à gauche… comme feuille 2. (il faut les valeurs et non les formules gauche (… ;1)…
Il faudrait cependant qu’une boîte de dialogue me demande la colonne à éclater.
Je coince pour automatiser le tout.
Amicalement
 

Pièces jointes

  • Classeur1.xls
    19 KB · Affichages: 50
  • Classeur1.xls
    19 KB · Affichages: 50
  • Classeur1.xls
    19 KB · Affichages: 51

jeanpierre

Nous a quitté
Repose en paix
Re : Extraite des valeurs avec une macro

Bonsoir margaux33,

Ton truc ressemble à ce que l'on appelle un plan comptable, notamment tes déclinaisons en feuille2.

Pour le reste, et pour l'instant, j'ai beau lire et relire.... car si tu ne veux pas de =GAUCHE(Etc.etc...), je ne vois pas....

Bonne soirée, et à en savoir un peu plus.

Jean-Pierre
 

margaux33

XLDnaute Nouveau
Re : Extraite des valeurs avec une macro

Bonsoir
Je ne suis pas contre la formule gauche(...) mais il faudrait qu'elle soit dans la macro.
Je veux éviter d'obtenir la formule dans les cellules. Seulement les valeurs extraites sur toutes les lignes dont ne ne connais le nombre a priori.

Cordiales salutations
 

JNP

XLDnaute Barbatruc
Re : Extraite des valeurs avec une macro

Bonjour Margaux33 et Jeanpierre :),
Si j'ai tout compris, voici le code que je te propose :
Code:
Sub Eclatement()
Dim Colonne As Integer, Lignes As Integer, I As Integer
Colonne = CInt(InputBox("N° de la colonne à traiter ?", "Informations nécessaires"))
If Colonne <= 0 Then Exit Sub
Lignes = CInt(InputBox("Nombre de lignes à traiter ?", "Informations nécessaires"))
If Lignes <= 0 Then Exit Sub
For I = 1 To Lignes
    Sheets("Feuil2").Cells(I, 1) = Sheets("Feuil1").Cells(I, Colonne)
    Sheets("Feuil2").Cells(I, 2) = CInt(Left(CStr(Sheets("Feuil1").Cells(I, Colonne)), 1))
    Sheets("Feuil2").Cells(I, 3) = CInt(Left(CStr(Sheets("Feuil1").Cells(I, Colonne)), 2))
    Sheets("Feuil2").Cells(I, 4) = CInt(Left(CStr(Sheets("Feuil1").Cells(I, Colonne)), 3))
    Sheets("Feuil2").Cells(I, 5) = CInt(Left(CStr(Sheets("Feuil1").Cells(I, Colonne)), 4))
    Sheets("Feuil2").Cells(I, 6) = Sheets("Feuil1").Cells(I, Colonne + 1)
Next I
End Sub
A te lire :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 881
Membres
103 981
dernier inscrit
vinsalcatraz