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 :

Pb format de cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 205
    Par défaut Pb format de cellule
    Bonjour le forum,

    j'ai un petit probleme que je ne sais pas comment le résoudre, voile j'ai ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i = Format(i, "0#")
            equiv = WorksheetFunction.Match(mat, Sheets(i).Range("A5:A1000"), 0)
            nbheures = nbheures + WorksheetFunction.Index(Sheets(i).Range("A5:K1000"), equiv, 8 + IIf(nat = 50, 0, 1))
    , et le résultat de la formule est incorrect (exemple j'ai comme résultat le chiffre 4 au lieu de 4,5), j'ai essayé de forcer le format soit sur la cellule ou dans la macro mais sans succès, je vous demande de bien vouloir m'orienter.

    Merci d'avance

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonsoir

    Explique d'abord ce que le code devrait faire et/ou le but recherché (éventuellement avec la disposition de ton fichier).
    Ensuite, ces 2 lignes de code sont d'aucune utilité si on les fait sortir de leur contexte (code dans sa globalité).

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 205
    Par défaut
    Bonsoir mercatog

    Désolais pour l'abréviation ou le manque d'information fourni, et je vous mis le code en totalité et comme explication voila c'est que j'aimerai consolider les hrs sup effectués par les employés quoi que ce que j'ai constater que le nombre réel est différent du résultat obtenu car s'il y'on a qui ont fait par exemple 12,5 réellement leurs résultat est soit 12 ou 13, voici le code:
    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
    Sub Macro2()
     
        Dim derlign As Integer
        Dim colorig As Range
     
        With Sheets("Pointage")
        derlign = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set colorig = .Range("E7:E" & derlign)
        For num = 1 To 31
        num = Format(num, 0#)
     
        With colorig.Offset(0, num)
            réf = """" & Format(Range("E6").Offset(0, num).Value, "0#") & """"
            Debug.Print
            .Formula = "=IF( VLOOKUP($A7,INDIRECT((" & réf & ")&""!$A$5:$k$500""" & "),6,0)=$AT$3,VLOOKUP($A7,INDIRECT((" & réf & ")&""!$A$5:$k$500""" & "),7,0),"""")"
            .Value = .Value
        End With
        Next num
     
        With colorig.Offset(0, 33)
             .FormulaR1C1 = "=nbsup(RC[-37],50)"
             .Value = .Value
        End With
     
        With colorig.Offset(0, 34)
            .FormulaR1C1 = "=nbsup(RC[-38],100)"
            .Value = .Value
        End With
     
        Set colorig = Nothing
        End With
    End Sub
     
    Public Function nbsup(mat As Variant, nat As Integer) As Integer
    Dim i As Byte
    Dim nbheures As Integer
     
        nbheures = 0
        If nat <> 50 And nat <> 100 Then
        MsgBox "Le 2ème argument de la fonction doit être 50 ou 100"
        nbsup = 99999
     
        Exit Function
        End If
        For i = 1 To 31
        i = Format(i, "0#")
        equiv = WorksheetFunction.Match(mat, Sheets(i).Range("A5:A1000"), 0)
        nbheures = nbheures + WorksheetFunction.Index(Sheets(i).Range("A5:K1000"), equiv, 8 + IIf(nat = 50, 0, 1))
    Next i
    nbsup = nbheures
    End Function
    merci d'avance.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Par hasard Double à la place d'Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Function NbSup(ByVal Mat As Variant, ByVal Nat As Integer) As Double
    Dim NbHeures As Double

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 205
    Par défaut
    Bonsoir mercatog,

    je vous remercie, vous venez de me sauver ( demain c le premier du mois et je doit consolider le calcul des salaires), encore merci

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PEAR][Spreadsheet] PHP/EXPORT EXCEL : nombre de formats de cellule différents !
    Par joe_le_mort dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 27/10/2005, 17h21
  2. [VB.NET]Format de cellules Excel
    Par seemax dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/08/2005, 16h03
  3. [excel] format de cellule
    Par alpachico dans le forum Excel
    Réponses: 5
    Dernier message: 28/07/2005, 10h09
  4. Format des cellules en Ole Excel
    Par kurul1 dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/04/2005, 16h20
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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