Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1876 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Créer macro importé un .csv dans excel

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Créer macro importé un .csv dans excel

n°1567189
barca-powa
Posté le 30-05-2007 à 12:59:02  profilanswer
 

Bonjour,
 
J'aurais besoin de créer dans un classeur excel un macro et un boutton permettant d'importer les données contenu dans un fichier .csv . Dans ce .csv il y a 2 colonnes et des centaines voir milliers de lignes. Dans ces colonne (on va dire A et B) je dois supprimer les 2 premiers caractaires (qui seront toujours " M- " ) de la premiére colonne. Ensuite je dois faire un autre boutton pour les comparés (les 2 colonnes doivent être identique pour être accepté)
 
En language je connais que le c++ (est encore c'est légé, 1er année de bts iris  :whistle: ). Donc là je rame comme pas possible. J'ai pas trouvé un code qui corespond a ce que je cherche à faire.
 
Même si vous me donné pas le code exacte, une petite aide serait la bienvenue  :D .
 
Je vous met un petit exemple au cas ou je me suis mal exprimé.
 
Le contenu du .csv

Code :
  1. M-0380028/01;0380028/01


 
Le résultat souhaité en cliquant sur le bouton "import .csv" puis "comparé codes"

Code :
  1. 0380028/01                           0380028/01                      Ok
  2. 0380248/D                            0380244/D                     Mauvais


 
Voilà j'esper que vous allez pouvoir m'aider  :D


Message édité par barca-powa le 30-05-2007 à 16:45:59
mood
Publicité
Posté le 30-05-2007 à 12:59:02  profilanswer
 

n°1567212
aprilthe5i​th
Posté le 30-05-2007 à 13:36:51  profilanswer
 

Bonjour :
 
Sub supprcaract()
 
dim A as integer, NbLine as integer
 
with thisworkbook.worksheets(1) 's'il s'agit bien de la Feuil1
  NbLine=.cells(65536,1).end(xlup).column 'si la colonne 1 est concernée
  for A=1 to nbline 'si la première cellule est en ligne 1
    .cells(A,1)=replace(.cells(A,1),"M-" ) 'on remplace les 2 caractères
    'par... rien, pour les supprimer
    if .cells(A,1)=.cells(A,2), then  
      .cells(A,3)="Ok"  
    else
      .cells(A,3)="Mauvais"
    end if
  next A
end with
end sub

n°1567214
aprilthe5i​th
Posté le 30-05-2007 à 13:38:44  profilanswer
 

Correction :
 
Sub supprcaract()
 
dim A as integer, NbLine as integer
 
with thisworkbook.worksheets(1) 's'il s'agit bien de la Feuil1
  NbLine=.cells(65536,1).end(xlup).row 'si la colonne 1 est concernée
  for A=1 to nbline 'si la première cellule est en ligne 1
    .cells(A,1)=replace(.cells(A,1),"M-" ) 'on remplace les 2 caractères
    'par... rien, pour les supprimer
    if .cells(A,1)=.cells(A,2), then  
      .cells(A,3)="Ok"  
    else
      .cells(A,3)="Mauvais"
    end if
  next A
end with
end sub
 
Attention ce code ne fonctionne que si le fichier .csv est déjà ouvert et  se présente sous la forme excel (cad avce des cellules et non pas des séparateurs type "," ou ";" )

n°1567217
aprilthe5i​th
Posté le 30-05-2007 à 13:39:54  profilanswer
 

Correction :
 
Sub supprcaract()
 
dim A as integer, NbLine as integer
 
with thisworkbook.worksheets(1) 's'il s'agit bien de la Feuil1
  NbLine=.cells(65536,1).end(xlup).row 'si la colonne 1 est concernée
  for A=1 to nbline 'si la première cellule est en ligne 1
    .cells(A,1)=replace(.cells(A,1),"M-","" ) 'on remplace les 2 caractères
    'par... rien, pour les supprimer
    if .cells(A,1)=.cells(A,2), then  
      .cells(A,3)="Ok"  
    else
      .cells(A,3)="Mauvais"
    end if
  next A
end with
end sub
 

n°1567223
barca-powa
Posté le 30-05-2007 à 13:50:27  profilanswer
 

ahah! Merci!
EDIT:
Désolé j'ai pas actualisé et vu tes corectifs. Je test ca merci!


Message édité par barca-powa le 30-05-2007 à 13:51:30
n°1567231
barca-powa
Posté le 30-05-2007 à 13:59:30  profilanswer
 

Alors il me disait erreur de syntaxe sur cette ligne
 
    If .Cells(A, 1) = .Cells(A, 2), then
 
J'ai cherché un peu (un peu :P) et en mettant ceci ca marche impec
 
    If .Cells(A, 1) = .Cells(A, 2) Then

n°1567232
kiki29
Posté le 30-05-2007 à 14:03:01  profilanswer
 

Une autre approche, à adapter


Option Explicit
 
Sub Tst()
Dim Fichier As Variant
    ChDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Text Files (*.csv), *.csv" )
    If Fichier <> False Then
        Lire Fichier
    End If
End Sub
 
Sub Lire(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur  As String * 1
 
    '  Séparateur Point Virgule
    Separateur = ";"
     
    Cells.Clear
    Application.ScreenUpdating = False
    NumFichier = FreeFile
    iRow = 1
     
    Open NomFichier For Input As #NumFichier
        Do While Not EOF(NumFichier)
            iCol = 1
            Line Input #NumFichier, Chaine
            Ar = Split(Chaine, Separateur)
            For i = LBound(Ar) To UBound(Ar)
                Ar(i) = Replace(Ar(i), "M-", "" )
                Cells(iRow, iCol) = Ar(i)
                iCol = iCol + 1
            Next
             
            Select Case Cells(iRow, 1)
                Case Is = Cells(iRow, 2): Cells(iRow, 3) = "Ok"
                Case Else: Cells(iRow, 3) = "Bad"
            End Select
             
            iRow = iRow + 1
        Loop
    Close #NumFichier
     
    Application.ScreenUpdating = True
End Sub

Message cité 1 fois
Message édité par kiki29 le 30-05-2007 à 14:49:20
n°1567241
barca-powa
Posté le 30-05-2007 à 14:12:52  profilanswer
 

Merci kiki29. Je modifie un peu le code de aprilthe5ith et je regarde ton code qui visiblement lui est pour inporter le .csv :D

n°1567253
barca-powa
Posté le 30-05-2007 à 14:25:45  profilanswer
 

Bon coupure de courant dans l'entreprise (...) je reboot j'essay ton code kiki29 et là miracle c'est exactement ca qui me falé! J'aurais juste 2 ou 3 truk a modifier pour les besoins spécifique qu'on aura et ca sera parfais!  
Un grand merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Créer macro importé un .csv dans excel

 

Sujets relatifs
[RESOLU] FPDF probleme mise en page tableaucreer un DefaultMutableTreeNode dynamique
[RESOLU]Calcul nombre de jours ouvrables entre 2 datesComment organiser la superposition de QLabel (Résolu)
Créer un prog qui créer un .txt avec info complet des PC (2)problème avec flash et Internet explorer [RESOLU]
Comment créer une formule Excel en VBScreer logiciel pour lire des fichiers audios (mp3 et compagnie)
Macro excel pour traitement fichier word 
Plus de sujets relatifs à : [Résolu] Créer macro importé un .csv dans excel


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR