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 :

Conversion texte vers nombre [XL-2003]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 21
    Par défaut Conversion texte vers nombre
    Bonjour à tous
    Pratiquant le VBA depuis peut, Je sollicite votre aide pour la correction d’une macro pour Excel 2003
    Voici ce que je désire effectuer :
    J’ai des tableaux où j’importe des données avec des colonnes de chiffres dans ceux-ci les formats sont parfois en « Texte » or, pour additionner le tout, il me les faut tous au format « nombres »
    Si je passe par « Collage spécial en multipliant par 1, ça fonctionne » mais je désire passer par une macro, et là, ça ne fonctionne qu’à moitié ???? (Même si j’enregistre la manip qui marche avec l’enregistreur de macro) je ne comprends pas pourquoi.

    Auriez-vous une solution à me proposer pour faire fonctionner ma macro ?

    Example avec la colonne K, si on additionne K19 et K20, le résultat est erroné : K20 n’est pas comptabilisé.

    Code avec enregistreur :
    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
     
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 10/01/2014
    '
     
    '
        Range("B2").Select
        Selection.Copy
        Range("K2:K33").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
            SkipBlanks:=False, Transpose:=False
        Range("B2").Select
    End Sub

    Code fonctionnant à moitié (Même problèmes qu’avec le code enregistré, aux mêmes cellules
    (K9, K17, K20, K30)

    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
     
    Option Explicit
    Sub Multiplication_par_x()     
        Dim y As Integer 'Valeur de multiplication
        Dim x As Range 'cellule temporaire pour variable de multiplication
        Dim z As Range 'Selection à multiplier
        Dim ongl As String 'Feuille
        Dim col As String 'Colonne
        Dim derli As Integer 'Dernière ligne de la colonne
     
        On Error GoTo erreurfeuille
        ongl = InputBox("Saisir le nom de la feuille de travail.", _
        Title:="Onglet à traiter", Default:="1")
     
        Sheets(ongl).Select
            col = InputBox("Saisir la colonne à modifier.", _
        Title:="Colonne à convertir", Default:="K")
     
            derli = Cells(Rows.Count, col).End(xlUp).Row
     
        Set z = Range(col & "2 :" & col & derli)
        'Set z = Selection
     
        z.NumberFormat = "0.00"
        y = Application.InputBox("Entrer le chiffre multiplicateur:", _
        Title:="Selection multiplier", Default:=1, Type:=1)
        Set x = Range("A65536").End(xlUp).Offset(1)
     
        If y = 0 Then Exit Sub
        If x <> "" Then
     
        'ajouter : si cellule vide : garder la cellule vide (pas 0)
        'ajouter : effacement des caractères invisibles et remplacement des points par des virgules
     
            Exit Sub
            If y <> "" Then y = ""
        Else: x.Value = y
            x.Copy
            z.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
            Application.CutCopyMode = False
        End If
        x.ClearContents 'efface la cellule temporaire en fin de colonne A
        Exit Sub
    erreurfeuille:
    MsgBox ("Ce nom n'existe pas !"), vbCritical
    End Sub
    De plus, je désirerais que si une cellule de la colonne à convertir est vide, qu’après convertion, elle soit toujours vide (qu’il n’y ait pas « 0 »)

    Question subsidiaire pour les pros d’Excel :
    Je cherche un moyen de convertir une partie du texte (surlignée à la souris) d’une cellule, de minuscule à majuscule (ou l’inverse)
    example : DISTRIBUTEUR NOGREN V62 - G3/8 5/3 CF 24VCC V62C611A-A313J
    deviendrait : Distributeur norgren V62 G3/8 - 5/3 CF 24VCC V62C611A-A313J

    Je n’ai rien trouvé sur le web : est-ce réalisable par macro ?

    Merci beaucoup par avance.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [PROC] Conversion texte en nombre
    Par pierreTPE57 dans le forum SAS Base
    Réponses: 3
    Dernier message: 09/11/2012, 14h29
  2. Conversion texte en nombre
    Par berapard dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/07/2008, 12h29
  3. passage de format texte vers nombre
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 07/06/2007, 16h01
  4. conversion date vers nombre
    Par hector dans le forum Framework .NET
    Réponses: 1
    Dernier message: 18/01/2007, 11h47
  5. conversion text vers integer
    Par jawad.t dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 10/06/2005, 20h35

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