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 :

Macro pour attribuer des priorités


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut Macro pour attribuer des priorités
    Bonjour,

    Tout d'abord j'utilise la version d'excel 2010.

    Je suis nouveau dans l'univers du code sur VBA et j'ai tenté de créer une macro qui me permettrait de prioriser les lignes d'une base de données en fonction de certaines donnée de cet base.

    Cette base de donnée est extraite du logiciel Business Objecti XI en format excel.

    Je ne peux, pour des raisons de confidentialités vous transmettre cette base de donnée. Cependant j'ai fait un copier coller de 6 lignes et j'ai supprimé la plupart des infos dont on n'avait pas besoin. Seul les infos nécessaires sont présentes.

    Quand j'exécutais la macro prio sur mon fichier d'origine j'avais un problème d'incompatibilité 13 quand j'arrivais sur la ligne PPm = Cells (i, 26)

    Et il s'avère que quand j'ai fait mon petit fichier avec mes 6 lignes copier coller sur un autre excel la j'avais plus ce problème car rien ne se passe.

    Je vous joint mon fichier en pièce jointe. Des idées ?

    En vous remerciant d'avance si vous prenez le temps de m'aider .
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Comme je n'ouvre pas les fichiers avec macros, je vais y aller de supposition.
    Ta variable PPm est possiblement déclarée comme un numérique (Long, Double,...) et ta cellule est possiblement en texte.
    Si c'est le cas, il te faut changer le format (casting)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PPm = CLng(Cells (i, 26)) 'si c'est un Long
    PPm = CDbl(Cells (i, 26)) 'si c'est un Double

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Ton code se débranche tout de suite, parce que la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do While Cells(i, 1).Value <> ""
    nest pas remplie. Sinon, l'erreur est certainement due à une cellule non numérique.

    Remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PPm = Cells(i, 26) 'Nbr de ppm
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If IsNumeric(Cells(i, 26)) Then
            PPm = Cells(i, 26) 'Nbr de ppm
        Else
            MsgBox "la cellule " & Cells(i, 26).Address & " n'est pas numérique"
        End If

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos réponses !

    Je viens d'essayer ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If IsNumeric(Cells(i, 26)) Then
            PPm = Cells(i, 26) 'Nbr de ppm
        Else
            MsgBox "la cellule " & Cells(i, 26).Address & " n'est pas numérique"
        End If
    Et effectivement il me met que la cellule est non numérique. Une idée de comment la rendre numérique ?

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Si tu as, par exemple, "toto" dans la cellule, il n'y a que toi qui sache ce qu'il faille faire. Peut-être mettre "0" ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    La rendre numérique n'est pas nécessairement important... tout dépend de l'utilisation que tu veux en faire.
    Le casting avec CLng, CDbl, Csng,...(voir l'aide) peut servir quand tu transfères ces nombres dans des variables.
    Si tu veux vraiment changer les chiffres en numériques, crée une boucle qui passe toutes tes cellules et multiplie les numérique par 1 avec la même méthode: If IsNumeric()

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    D'accord.

    Pour être plus clair, je récupère un fichier excel avec la colonne U :

    Nom : Capture.PNG
Affichages : 221
Taille : 8,9 Ko

    Et mois je veux récupérer le 0.42 par exemple de la première ligne donc la je fais un gauche(U2;4) pour avoir la colonne Z. Et cette colonne Z me sert pour la macro car j'ai besoin du 0.42 pour le comparer pour pouvoir prioriser mes lignes.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Si ton séparateur de décimale normal est la virgule, il te faut changer les points par des virgules.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("U").Replace(".", ",")
    Il faudra voir si ton format de cellule est Texte ou Standard ...mais normalement tu devrais te retrouver avec des chiffres

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Autrement, si tu ne veux pas le faire par macro, tu peux utiliser Ctrl-H.
    Ou en formule, utiliser SUPPRESPACE(), entre autres, et REMPLACER

  10. #10
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    Super merci !

    Par contre quand je mets ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("U").Replace(".", ",")
    il me demande un = . ?

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Essaie comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("U").Replace ",", ".", xlPart
    Tu peux aussi spécifier le nom de l'onglet si tu n'es pas déjà dessus

  12. #12
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    J'ai copié coller ton code et cela ne marche toujours pas. :/

    Il ne remplace pas les points par des virgules.

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Est-ce que tu as besoin de passer par une macro pour faire ce remplacement ?

    Essaie manuellement en utilisant l'enregistreur au besoin:
    Sélectionne ta plage avec des points
    Tape Ctrl-H
    Clique le bouton Options pour développer la boîte.
    Décoche la boîte "Totalité du contenu de la cellule"
    Entre le point en haut (Rechercher) et la virgule dans la 2e (Remplacer par)

    Est-ce que ça fonctionne mieux ?

  14. #14
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    Cela fonctionne effectivement. Mais c'est le côté qui ne va pas le faire. Car cette base de donnée doit être mis à jour et de ce fait d'autre lignes apparaitront ou seront modifié. D'où le fait que je veux utiliser une macro pour rendre la MAJ automatique (le client appuis sur MAJ et hop tout est mis à jour).

    Voici mon code : le principe est relativement simple en fonction des valeurs des différents variable il m'attribue une priorité de la ligne qu'il met dans une cellule.
    Le problème c'est que quand on rentre dans un case il me met incompatibilité de type 13..
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    Sub Prio()
     
    Worksheets("Feuil1").Activate
     
    Dim PPm As Single, Student  As Single, Gravite As String, Groupe As Single, MR As Single, i As Integer, j As Integer
     
     
        PPm = 0
        Student = 0
        Gravite = ""
        Groupe = 0
        MR = 0
        i = 2
        j = 2
     
     
    Do While Cells(i, 4).Value <> ""
     
     
        PPm = (Cells(i, 26)) 'Nbr de ppm
        Student = Cells(i, 22) 'Coefficient de student
        Gravite = Cells(i, 12) 'PANNE ou INCIDENT
        Groupe = Cells(i, 40) 'Groupe 1 ou 2
        MR = Cells(i, 4) 'Nbr de mois de roulage
     
     
        MsgBox (PPm)
     
        Select Case MR
            Case Is = 0 <= MR <= 1
            MR = 1
            Case Is = 1 < MR <= 3
            MR = 3
            Case Is = 3 < MR <= 12
            MR = 12
            Case Is = 12 < MR <= 24
            MR = 24
        End Select
     
    '1er MR
        Select Case MR
            Case Is = 1
     
      'Groupe 2
        Select Case Groupe
        Case Is = 2
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 700 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 2
            Case Is = 250 <= PPm < 700 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 300 And Gravite = "PANNE"
                Cells(j, 41).Value = 2
            Case Is = 100 <= PPm < 300 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 2
            Case Else
                Cells(j, 41).Value = 1
            End Select
      'Groupe 1
        Case Is = 1
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 700 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 3
            Case Is = 250 <= PPm < 700 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 1
            Case Is = 100 <= PPm < 250 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 1
            Case Is = 100 <= PPm < 250 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 300 And Gravite = "PANNE"
                Cells(j, 41).Value = 3
            Case Is = 100 <= PPm < 300 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 3
            Case Is = 25 <= PPm < 100 And Gravite = "PANNE" And 0 < Student < 5
                Cells(j, 41).Value = 1
            Case Else
                Cells(j, 41).Value = 2
            End Select
        End Select
    '3 MR
    Case Is = 3
        Select Case Groupe
        Case Is = 2
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 2000 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 2
            Case Is = 750 <= PPm < 2000 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 800 And Gravite = "PANNE"
                Cells(j, 41).Value = 2
            Case Is = 200 <= PPm < 800 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 2
            Case Else
                Cells(j, 41).Value = 1
            End Select
     
      'Groupe 1
        Case Is = 1
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 2000 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 3
            Case Is = 750 <= PPm < 2000 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 1
            Case Is = 250 <= PPm < 750 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 1
            Case Is = 250 <= PPm < 750 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 800 And Gravite = "PANNE"
                Cells(j, 41).Value = 3
            Case Is = 200 <= PPm < 800 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 3
            Case Is = 50 <= PPm < 200 And Gravite = "PANNE" And 0 < Student < 5
                Cells(j, 41).Value = 1
            Case Else
                Cells(j, 41).Value = 2
            End Select
        End Select
     
    '12 MR
    Case Is = 12
        Select Case Groupe
        Case Is = 2
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 8000 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 2
            Case Is = 3000 <= PPm < 8000 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 2400 And Gravite = "PANNE"
                Cells(j, 41).Value = 2
            Case Is = 600 <= PPm < 2400 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 2
            Case Else
                Cells(j, 41).Value = 1
            End Select
     
      'Groupe 1
        Case Is = 1
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 8000 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 3
            Case Is = 3000 <= PPm < 8000 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 1
            Case Is = 1000 <= PPm < 3000 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 1
            Case Is = 1000 <= PPm < 3000 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 2400 And Gravite = "PANNE"
                Cells(j, 41).Value = 3
            Case Is = 600 <= PPm < 2400 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 3
            Case Is = 150 <= PPm < 600 And Gravite = "PANNE" And 0 < Student < 5
                Cells(j, 41).Value = 1
            Case Else
                Cells(j, 41).Value = 2
            End Select
        End Select
     
    '24 MR
    Case Is = 24
        'Meme grille prio pour Gr1 et Gr2
     
            Select Case PPm And Student And Gravite    ' <= la valeur à tester (ici, la note)
            Case Is = PPm >= 8000 And Gravite = "INCIDENT" And Student >= 5
                Cells(j, 41).Value = 2
            Case Is = 9000 <= PPm < 24000 And Gravite = "INCIDENT" And 0 < Student < 5
                Cells(j, 41).Value = 0
            Case Is = PPm >= 5500 And Gravite = "PANNE"
                Cells(j, 41).Value = 2
            Case Is = 1500 <= PPm < 5500 And Gravite = "PANNE" And Student >= 5
                Cells(j, 41).Value = 2
            Case Else
                Cells(j, 41).Value = 1
            End Select
    End Select
     
     
        j = j + 1
        i = i + 1
    Loop
     
    Worksheets("Feuil2").Activate
     
    End Sub

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Ajoute ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub RemplacePoints()
        Columns("U").Replace ".", ",", xlPart
    End Sub
    Et au début de ta Sub, fais comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Prio()
    Dim PPm As Single, Student  As Single, Gravite As String, Groupe As Single, MR As Single, i As Integer, j As Integer
    Dim nbLignes As Long
     
    Worksheets("Feuil1").Activate
    RemplacePoints
    nbLignes = Cells(Rows.Count, "U").End(xlUp).Row
    Range("Z2:Z" & nbLignes).Formula = "=LEFT(U2,4)*1"
     
        PPm = 0
    ................
    J'ai fait un test et les points sont bien changés en virgule et la formula fonctionne bien aussi...

  16. #16
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    Cela marche effectivement donc merci. Mais j'ai toujours le problème mais uniquement pour la colonne avec une colonne et non pas l'autre ce qui est encore plus bizarre que le chiffre est considéré comme du texte. Le code fonctionne quand même donc je vais vérifier si c'est ce qui me fait est correct.

    Merci bien en tout cas.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tous fichier en provenance de bisness objet est au format texte!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sheets ("namesheet").usedrange.numberformat="general"
    sheets ("namesheet").usedrange.value =sheets ("namesheet").usedrange.value

  18. #18
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Par défaut
    Okay merci.

    Mais ton code transforme tout le tableau au format numérique à la place du format texte ? Car j'ai des dates au format JJ/MM/AAAA. Cela va pas faire beuger ?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    non mon code si tu parle bien du mien, converti au format général et je laisse Excel interpréter le format des celles (Date,Texte,numérique)!

    Mais tu peux faire une boucle et perdre la colonne que tu veux et ne faire le traitement que sur ces colonnes entière ce qui est plus rapide que cellule par cellule!

  20. #20
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Citation Envoyé par Slysio Voir le message
    Okay merci.

    Mais ton code transforme tout le tableau au format numérique à la place du format texte ? Car j'ai des dates au format JJ/MM/AAAA. Cela va pas faire beuger ?
    Ton fichier joint ne contient pas de dates au format TEXTE. Elles sont toutes au format DATE. Mais tu as raison; s'il y avait des dates au format TEXTE, il faudrait leur appliquer un traitement différent.

Discussions similaires

  1. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21
  2. Réponses: 1
    Dernier message: 15/09/2006, 16h23
  3. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56
  4. [VBA-E] Probleme Macro pour gérer des cases à cocher
    Par bibiche2184 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/06/2006, 18h03
  5. macro pour créer des graphiques
    Par Sebastien_INR59 dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 09h44

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