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 :

Ajouter un "0" devant un nombre


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Supply planner
    Inscrit en
    Août 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Supply planner

    Informations forums :
    Inscription : Août 2018
    Messages : 23
    Par défaut Ajouter un "0" devant un nombre
    Bonjour,

    J'essaye sans succès de rajouter un zéro devant un numéro de mois et un numéro de semaine mon code m'a l'air ok je comprends pas pourquoi excel m'affiche toujours ce chiffre j'en appel donc à votre expertise
    Voici mon 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
    52
    53
    54
    55
    56
    57
    58
    59
    Sub BDDPoCONF()
    Dim i As Long
    Dim Y As Integer, M As Integer, W As Integer
    Dim table1 As Variant, table2 As Variant ' tableaux
    Dim tabR As Variant
    Dim dico As New Scripting.Dictionary    ' dictionnaires cles -> valeur
     
     
    'Application.ScreenUpdating = False
    Worksheets("BDD PO_Conf v2").Rows("1:1").Delete Shift:=xlUp
    Worksheets("BDD PO_Conf v2").Range("A:H,J:J,L:N,P:AD,AG:BQ").Delete Shift:=xlToLeft
     
    With Worksheets("BDD PO_Conf v2")
     
    LR1 = Worksheets("BDD PO_Conf v2").Range("A" & Rows.Count).End(xlUp).Row
    For Each ObjCell In Range(Cells(2, 4), Cells(LR1, 4))
                    If ObjCell.Value = "" Then GoTo Line1
                        A = Right(ObjCell.Value, 4)
                        M = Mid(ObjCell.Value, 4, 2)
                        D = Left(ObjCell.Value, 2)
                        ObjCell.Value = DateSerial(A, M, D)
    Line1:
                Next
     
        For i = 2 To LR1
            If Range("B" & i).Value = "Seafreight EDI" Then
                    Range("H" & i).Value = Range("D" & i) + 48
                ElseIf Range("C" & i).Value = "Airfreight EDI collect" Or "Airfreight EDI prepaid" Then
                    Range("H" & i).Value = Range("D" & i) + 12
                ElseIf Range("C" & i).Value = "Sea-air collect EDI" Then
                    Range("H" & i).Value = Range("D" & i) + 25
                Else
                    Range("H" & i).Value = "Pas de fret"
            End If
     
            Range("C" & i).Value = "L" & Range("C" & i).Value & "00"
     
            Y = Year(Range("H" & i).Value)
            If Len(Month(Range("H" & i).Value)) < 2 Then
                    M = "0" & Month(Range("H" & i).Value)
                Else
                    M = Month(Range("H" & i).Value)
            End If
            If Len(Format(Range("H" & i).Value, "ww")) < 2 Then
                    W = "0" & Format(Range("H" & i).Value, "ww")
                Else
                    W = Format(Range("H" & i).Value, "ww")
            End If
     
            Range("F" & i).Value = Y & "." & M
            Range("G" & i).Value = Y & "." & W
        Next i
            Range("F1").Value = "ETA month"
            Range("G1").Value = "Conf. Del. Week"
            Range("H1").Value = "ETA Date  "
     'voir pour rajouter le vlookup FAUX si déjà présent dans le BDD PO v2
     
    End With
    End Sub
    Merci d'avance

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par chanasb Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Y As Integer, M As Integer, W As Integer
                    M = "0" & Month(Range("H" & i).Value)
                    W = "0" & Format(Range("H" & i).Value, "ww")
    Tes variable M et W sont des Integer.
    Donc vouloir les passer en texte pour mettre un 0 devant va au mieux ne rien faire, au pire planter.

    Sans utiliser ces deux variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Range("F" & i).Value = Y & "." & Format(Month(Range("H" & i).Value, "00")
            Range("G" & i).Value = Y & "." & Format(Range("H" & i).Value, "ww")

  3. #3
    Membre averti
    Homme Profil pro
    Supply planner
    Inscrit en
    Août 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Supply planner

    Informations forums :
    Inscription : Août 2018
    Messages : 23
    Par défaut
    Hello Menhir,

    C'est ce que j'ai réalisé après coup

    En tout cas merci beaucoup pour ta réponse !

    Une bonne journée

  4. #4
    Membre averti
    Homme Profil pro
    Supply planner
    Inscrit en
    Août 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Supply planner

    Informations forums :
    Inscription : Août 2018
    Messages : 23
    Par défaut
    Hello,

    En fin de compte le
    W = Format(Range("H" & i).Value, "ww")
    ne renvoi la semaine 1 à 9 au format "9" et non "09" si vous aviez une solution je suis preneur

    Merci d'avance,

  5. #5
    Invité
    Invité(e)
    Par défaut
    format(Format(date, "ww"),"00")

  6. #6
    Membre averti
    Homme Profil pro
    Supply planner
    Inscrit en
    Août 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Supply planner

    Informations forums :
    Inscription : Août 2018
    Messages : 23
    Par défaut
    Bonjour à tous,

    Merci pour votre aide. Un dernier petit point sans mauvais jeux de mots dans mon code je retourne dans les cellules F & G l'année avec le mois & l'année avec le numéro de semaine. Via le code ci-dessous:
    Range("F" & i).Value = Format(Y & "." & M, "0000.00")
    Range("G" & i).Value = Format(Y & "." & W, "0000.00")
    C'est là que j'ai deux problème pour la semaine 50 le code me retourne 2018,5 et mon séparateur point fini en virgule ... Comme l'impression de faire un pas en avant 2 pas en arrière
    2019,02
    2018,5

    Encore merci,

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Mets tes cellules destination au format de nombre "Texte" (à la main ou par macro).

  8. #8
    Membre averti
    Homme Profil pro
    Supply planner
    Inscrit en
    Août 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Supply planner

    Informations forums :
    Inscription : Août 2018
    Messages : 23
    Par défaut
    Perfect Merci beaucoup !

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

Discussions similaires

  1. [Conception] Ajouter des "0" devant un nombre
    Par xender dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 18/01/2012, 16h19
  2. Ajouter un zéro devant un nombre
    Par solorac dans le forum Excel
    Réponses: 1
    Dernier message: 07/06/2007, 11h15

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