Bonjour,

J'ai un petit problème d'autoentrepreneur à vous soumettre :
- je ne gère pas la tva.
- mes fournisseur me donnent leur tarifs en ht via des classeurs excel.
- mon logiciel de gestion commerciale ne sait pas intégrer prix_client_sans_tva = prix_fournisseur*tva*coef : il gère tout (achat/vente) avec ou sans tva mais ne sais pas appliquer la tva sur les achats mais pas sur les ventes...

Évidement les classeurs excel des prix fournisseurs comportent plusieurs feuilles avec des noms variants de l'un à l'autre.
Évidement dans une feuille il y a des lignes blanches entre type de produits
Évidement dans une colonne il y a parfois des données parasites ("PROMO", "FIN_DE_VIE", "ND" ) au lieu du prix ht par exemple.
Mais heureusement, seul les trois premières colonnes des feuilles m'intéressent (référence, désignation, prix ht).

Il me faut donc consolider les différentes feuilles d'un classeur donné pour :
- obtenir une seule feuille avec tous les produits en liste.
- manipuler les données, rajouter des colonnes.
- exporter la feuille au format csv, séparateur point-virgule, sans guillemet délimitant les champs texte pour l'importer dans mon logiciel de gestion commerciale.

Newbie après une journée à bucher j'obtiens ca, mais ca coince à la copie des cellules, comment je fait ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
Sub ouvrir()
 
Dim Message, Title, Default, Fournisseur, FichierAOuvrir, FichierAEcrire, FichierCsv 'Strings
Dim ligne_en_cours, Coef, feuille_en_cours, nbre_ligne, Nbr_Feuille, feuille_export 'Ints
 
 
' Demander nom du fournisseur en cours de traitement
' Définit le message.
Message = "Nom du fournisseur à traiter"
Title = "Fournisseur à traiter"    ' Définit le titre.
Default = "FOUR1"    ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
Fournisseur = InputBox(Message, Title, Default)
 
' Demander coef a appliquer
' Définit le message.
Message = "Coefficent à appliquer"
Title = "Coef"    ' Définit le titre.
Default = "1.1"    ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
Coef = InputBox(Message, Title, Default)
 
' Ouverture du fichier à traiter
FichierAOuvrir = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
If FichierAOuvrir <> False Then
    Set mon_classeur1 = Workbooks.Open(FichierAOuvrir)
 
    ' Traitement feuille en cours
    Nbr_Feuille = Worksheets.Count
 
    ' Ajout d'une feuille qui sera exportée
    Sheets.Add After:=Sheets(Sheets.Count)
    feuille_export = Worksheets.Count
    'MsgBox Nbr_Feuille & " " & feuille_export
    Set FichierCsv = Worksheets(feuille_export)
 
 
    ' A partir de quelle feuille ?
    Message = "Traiter à partir de la feuille N° ?"
    Title = "Feuille"    ' Définit le titre.
    Default = "3"    ' Définition la valeur par défaut.
 
    ' Boucle de traitement des feuilles du classeur
    For feuille_en_cours = InputBox(Message, Title, Default) To Nbr_Feuille
 
        ' Traitement ligne par ligne
        For ligne_en_cours = 1 To Rows.Count
 
            ' Traitement ligne_en_cours, colonne 3
 
            ' Si ce n'est pas une ligne blanche intercalaire
            If Not IsNull(ActiveSheet.Cells(ligne_en_cours, 3)) Then
                ' Si la colonne C est numérique
                If IsNumeric(ActiveSheet.Cells(ligne_en_cours, 3)) Then
                    MsgBox "feuille_en_cours : " & feuille_en_cours
                    MsgBox "ligne_en_cours : " & ligne_en_cours
                    ' Copie des colonnes 1 à 3 dans la nouvelle feuille
 
                    Worksheets(feuille_en_cours).Range(Cells(ligne_en_cours, 1), Cells(ligne_en_cours, 3)).Copy _
                    Destination:=Worksheets(feuille_export).Range(Cells(ligne_en_cours, 1))
 
                End If
            End If
 
        Next
    Next
 
End If
End Sub
Ca coince à : ' Copie des colonnes 1 à 3 dans la nouvelle feuille : Erreur 1004 Erreur définie par l'application ou par l'objet.

Merki !