Macro "rapatrie" mauvais format

Bonjour le forum,

J'ai un petit souci. J'ai une macro qui va chercher des donner dans différents classeurs et les range dans un classeur "Relance". En colonnes I et J, je veux que les données rapatriées soient en format comptabilité sans symbole. Mais dès que j'exécute la macro, les colonnes sont formatées en monétaire avec un symbole F. Dans la macro, ces données sont définies comme Currency.

Est-ce que je dois ajouter une ligne pour spécifier le format voulu ? Et si oui, comment faire ?

Aurélien.

Bonjour

Mets ton code en ligne ce sera plus facile de comprendre ce qui est à faire

Amicalement

Bonjour Dan,

Ci-dessous mon code, et en PJ le tableau où sont rapatriées les données avec les colonnes I et J qui sont formatées en monétaire avec symbole F au lieu de comptabilité sans symbole.

Sub a()

Dim Référence As String, Fichier_traité As String, Feuille_traitée As String, DerLigFeuille_traitée As Integer, DerLigA_Relance As Integer
Dim i As Integer, j As Integer, k As Integer, n As Integer, m As Integer, Date_limite As Date
Dim a As String, b As Date, c As String, d As String, e As String, f As String, g As Currency, h As Currency

Application.ScreenUpdating = False
Call Effacer

Date_limite = Sheets("Données").Range("C2")  'Date = aujourd'hui + 2 mois

For n = 1 To 2 ' car 2 chemins possibles
    If n = 1 Then
    m = Sheets("Données").Range("A" & Rows.Count).End(xlUp).Row
    Else
    m = Sheets("Données").Range("B" & Rows.Count).End(xlUp).Row
    End If

    For i = 3 To m 'Nombre de fichiers listés en A et B

        Référence = Sheets("Données").Range("A2")

        If n = 1 Then
        Fichier_traité = Sheets("Données").Range("A" & i).Value
        Workbooks.Open Filename:="C:\Documents and Settings\leblanca.POPULATION3\Bureau\Test Relance\V3\" & Référence & Fichier_traité
        Else
        Fichier_traité = Sheets("Données").Range("B" & i).Value
        Workbooks.Open Filename:="C:\Documents and Settings\leblanca.POPULATION3\Bureau\Test Relance\V3\Sous-dossier\" & Référence & Fichier_traité
        End If

                For j = 1 To Sheets.Count 'Nombre de feuilles dans le fichier
                    Sheets(j).Activate
                    Feuille_traitée = Sheets(j).Name
                    DerLigFeuille_traitée = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

                        For k = 14 To DerLigFeuille_traitée 'Nombre de lignes à traiter
                            Range("A" & k).Select

                            If ActiveSheet.Range("C1").Value <> Feuille_traitée Then 'Indique la condition des feuilles à ne pas traiter
                            Exit For
                            End If

                                If ActiveCell.Offset(0, 1) <> "" And ActiveCell.Offset(0, 1) < Date_limite And ActiveCell.Offset(0, 9) >= 0 And ActiveCell.Offset(0, 9) <> ActiveCell.Offset(0, 8) Then 'Indique les conditions de la recherche
                                        a = ActiveCell.Offset(0, 0) 'No de commande (colonne A)
                                        b = ActiveCell.Offset(0, 1) 'Date (colonne B)
                                        c = ActiveCell.Offset(0, 2) 'Fournisseur (colonne C)
                                        d = ActiveCell.Offset(0, 3) 'Désignation (colonne D)
                                        e = ActiveCell.Offset(0, 4) 'Désignation (colonne E)
                                        f = ActiveCell.Offset(0, 5) 'Désignation (colonne F)
                                        g = ActiveCell.Offset(0, 8) 'Engagé (colonne I)
                                        h = ActiveCell.Offset(0, 9) 'Liquidé (colonne J)

                                        Windows("Relances.xls").Activate
                                        DerLigA_Relance = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
                                        Range("A" & DerLigA_Relance + 1) = Fichier_traité
                                        Range("B" & DerLigA_Relance + 1) = Feuille_traitée
                                        Range("C" & DerLigA_Relance + 1) = a 'No de commande
                                        Range("D" & DerLigA_Relance + 1) = b 'Date
                                        Range("E" & DerLigA_Relance + 1) = c 'Fournisseur
                                        Range("F" & DerLigA_Relance + 1) = d 'Désignation
                                        Range("G" & DerLigA_Relance + 1) = e 'Désignation
                                        Range("H" & DerLigA_Relance + 1) = f 'Désignation
                                        Range("I" & DerLigA_Relance + 1) = g 'Engagé
                                        Range("J" & DerLigA_Relance + 1) = h 'Liquidé
                                        Windows(Référence & Fichier_traité & ".xls").Activate
                                End If
                        Next 'k
                Next 'j

            ActiveWorkbook.Close SaveChanges:=False
    Next 'i
Next 'n

    ActiveWindow.SmallScroll Down:=-10000
    Range("A1").Select
End Sub

Merci de ton aide.

Aurélien.

15relances.zip (18.48 Ko)

Re,

Essaie en rajoutant ces deux lignes

Range("I" & DerLigA_Relance + 1).NumberFormat = "#,##0.00"
Range("J" & DerLigA_Relance + 1).NumberFormat = "#,##0.00"

Maintenant en voyant le code tu aurais pu éviter d'utiliser les variables a, b, c, etc... un code du genre :

If ActiveCell.Offset(0, 1) <> "" And _
    ActiveCell.Offset(0, 1) < Date_limite And _
    ActiveCell.Offset(0, 9) >= 0 And _
    ActiveCell.Offset(0, 9) <> ActiveCell.Offset(0, 8) Then
With Workbook("Relances.xls")
DerLigA_Relance = Sheets("Relances").Range("A" & Rows.Count).End(xlUp).Row
.Range("A" & DerLigA_Relance + 1) = Fichier_traité
.Range("B" & DerLigA_Relance + 1) = Feuille_traitée
.Range("C" & DerLigA_Relance + 1) = ActiveCell.Offset(0, 0) 'No de commande
.Range("D" & DerLigA_Relance + 1) = ActiveCell.Offset(0, 1) 'Date
.Range("E" & DerLigA_Relance + 1) = ActiveCell.Offset(0, 2) 'Fournisseur
.....
End with

A voir avec ton application

Amicalement

Merci beaucoup Dan, ça fonctionne parfaitement pour le format. Moins pour le 2ème code, mais j'ai fait ça en vitesse. Je regratterai ça de plus près prochainement. Pour l'instant je fais avec celui que j'ai qui fonctionne bien.

Aurélien.

Rechercher des sujets similaires à "macro rapatrie mauvais format"