IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA Réaliser des arrondis.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut VBA Réaliser des arrondis.
    Bonjour à tous,

    je galere depuis 2 heure sur mon code VBA que voici:

    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
     
    Private Function Arrondi(ByVal Nombre, ByVal Decimales)
          Arrondi = Int(Nombre * 10 ^ Decimales + 1 / 2) / 10 ^ Decimales
    End Function
     
    Sub vba()
     
    Dim DernLigne As Long
     
    Dim Sommetotal As Long
     
    Dim Fs As Object, A As Object
     
    Dim i As Long
     
            feuille = Sheets("information").Range("B6").Value
             Code = Sheets("information").Range("c6").Value
            typeecriture = Sheets("information").Range("E6").Value
     
    Sheets(feuille).Select
    DernLigne = Sheets(feuille).Range("A65536").End(xlUp).Row
    date_export = Replace(Sheets("information").Range("D6").Value, "/", "-")
     
    Set Fs = CreateObject("Scripting.FileSystemObject")
    Set A = Fs.CreateTextFile("J:\Comptabilite\Documents\" & date_export & ".txt", True)
    A.WriteLine ("Type Ecriture   Code Journal    Date de Pièce   N° Compte Général   N° Compte tiers Libellé d'écriture  Montant débit   Montant crédit  N°Plan  N° section")
         For i = 1 To DernLigne
     
             If Sheets(feuille).Range("C" & i).Value <> "" Then
             A.WriteLine (typeecriture & vbTab & Code & vbTab & date_export & vbTab & Range("C" & i) & vbTab & vbTab & Range("A" & i) & vbTab & Range("D" & i) & vbTab & Range("E" & i) & vbTab & vbTab)
     
    Else
     
    End If
       Next
        A.Close
     
    End Sub
    Ce code VBA a pour but créer un fichier txt et extraire les ligne d'une feuille excel. Pour qu'au final nous pussions importer ce fichier dans la compta (sage 100).

    Le problème se situe au niveau de "Range("D" & i) & vbTab & Range("E" & i)",

    Je n'arrive pas à faire arrondir les chiffres à 2 chiffres après la virgule.

    J'ai essayé round il me ressort erreur 13 incompatibilité type.

    Je n'arrive pas avoir le problème, si quelqu'un pourrais me donner une piste

    Merci

    guigui69

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Je ne vois aucun arrondi dans ton code..

    La fonction Round marche très bien.

    De plus aucune raison que le code ne marche pas... Bien qu'il soit un peu pourri

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci pour ta réponse,

    J'ai retirer le round dans le code VBA car il ne fonctionnait pas, mais voici le code avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            A.WriteLine (typeecriture & vbTab & Code & vbTab & date_export & vbTab & Range("C" & i) & vbTab & vbTab & Range("A" & i) & vbTab & Round(Range("D" & i), 2) & vbTab & Round(Range("E" & i), 2) & vbTab & vbTab)
    J'ai l'erreur 13 incompatibilité de type

    guigui69

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    tu ne peux rounder que des trucs roundables.. c'est à dire des chiffres, t'as sûrement des strings ou des blancs à l'intérieur, je me trompe ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Oui possible des blancs oui mais strings c'est quoi ?

    Comment contourner cela?

    guigui69

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    string : chaines de caractères ou culotte relativement fine au niveau des fesses

    par exemple tester avant de faire ta ligne avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if isnumeric(Range("D" & i)) and isnumeric(Range("E" & i)) then
    A.WriteLine (typeecriture & vbTab & Code & vbTab & date_export & vbTab & Range("C" & i) & vbTab & vbTab & Range("A" & i) & vbTab & Round(Range("D" & i), 2) & vbTab & Round(Range("E" & i), 2) & vbTab & vbTab)
    else
    A.WriteLine (typeecriture & vbTab & Code & vbTab & date_export & vbTab & Range("C" & i) & vbTab & vbTab & Range("A" & i) & vbTab & Jsépasketufais & vbTab & jsépasketuveux & vbTab & vbTab)
    end if

Discussions similaires

  1. Macro VBA sur des onglets réalisable ?
    Par djiyll dans le forum Excel
    Réponses: 3
    Dernier message: 31/05/2014, 01h28
  2. Réaliser des coins arrondis
    Par laurentSc dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/01/2013, 10h21
  3. Réponses: 7
    Dernier message: 08/03/2004, 15h30
  4. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo