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

Excel Discussion :

Modifier format de cellule


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Modifier format de cellule
    Bonjour,

    A l'aide d'une maccro excel, je vais importer des données issus d'un autre excel, le but étant de traiter ces données. Le problème est que pour les feuilles à traiter, un message s'affiche : Le nombre dans cette cellule est au format texte ou précédé d'une apostrophe. De ce fait, il m'est impossible de traiter les données.

    J'ai essayer cette maccro mais elle n'est pas fonctionnel...
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub es()
     Dim pl As Worksheet
      For Each pl In Sheets(Array("Armoires", "Supports + Foyers"))
    pl.Activate
        Set pl = Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
        If Not pl Is Nothing Then
            Cells(Rows.Count, Columns.Count).Copy
            pl.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
        End If
    Next pl
    End Sub


    Une fois importé, ce sont l'ensemble des éléments de la feuille Support + Foyer et armoires qui doivent être convertis.
    Merci de votre aide,

    CR

  2. #2
    Responsable
    Office & Excel

    Salut.

    Tu ne mentionnes pas ta version d'Excel, mais depuis 2010, Power Query facilite grandement la récupération et le traitement de données en provenance d'autres classeurs.

    Ici, tu ne précises pas comment arrive le message. Est-ce un popup ou simplement un message d'avertissement avec triangle vert au niveau des cellules incriminées? Si c'est un message bloquant, sur quelle ligne apparaît-il?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Bonjour,

    J'ai un fichier excel issue d'une base de donnée d'un logiciel.

    J'ai un fichier excel qui via une macro va me permettre de copié collé les informations de ce premier fichier excel.

    Le problème est que j'ai le message d'erreur : Le nombre dans cette cellule est au format texte ou précédé d'une apostrophe.

    J'ai excel 2013 et je ne veux pas gérer cela via Power Query. Le message s'affiche lorsque l'on passe sur les cellules par un losange jaune,

    Merci de votre aide,

    CR

  4. #4
    Expert éminent
    Bonjour,

    as-tu essayé de changer le format de cellule ?

    Pour des nombres avec deux chiffres après la virgule (pour l'exemple)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    MaPlage.NumberFormat = "0.00"

  5. #5
    Expert confirmé
    Bonjour,
    Citation Envoyé par clemroussi Voir le message
    Le problème est que j'ai le message d'erreur : Le nombre dans cette cellule est au format texte ou précédé d'une apostrophe.
    Il ne s'agit pas d'un message d'erreur mais d'un avertissement sur le contenu des cellules.
    Il faudrait savoir si tu veux conserver ces contenus au format texte ou si tu veux les transformer en nombre.
    Si c'est le cas, tu devrais publier la macro utilisée pour la copie.
    Sinon dans les options Excel tu peux désactiver cet avertissement.

    Citation Envoyé par joe.levrai Voir le message
    as-tu essayé de changer le format de cellule ?
    @joe.levrai : Changer le format d'une cellule ne change pas le type de donnée qu'elle contient. Pour supprimer l’avertissement, il faut modifier le contenu.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  6. #6
    Futur Membre du Club
    Bonjour,

    Merci pour votre aide !
    Les informations que je récupère sont au format texte, et je veux les transformé en nombre ou format standard pour pouvoir les manipuler ensuite ( camembert, statistique etc..)
    Il faut prendre en compte que les valeurs à transformer se trouve dans la feuille 2 et 3 de mon fichier excel
    La macro utilisé pour la copie est la suivante :

    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
     
    Sub Rectangleàcoinsarrondis1_Cliquer()
     
     
    Dim objOuvrir As FileDialog
    Dim objFichiers As FileDialogSelectedItems
    Dim wbsource As Workbook, wbdest As Workbook
     
    Set objOuvrir = Application.FileDialog(msoFileDialogOpen)
     
    With objOuvrir 'Affiche la fenêtre "Ouvrir"
        .Filters.Clear 'Efface les filtres existants.
        .Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm" 'Définit une liste de filtres pour le champ "Type de fichiers".
        .Show
        Set objFichiers = .SelectedItems 'Définit les fichiers sélectionnés
    End With
     
    Worksheets("Armoires").Range("A2:BZ5000").ClearContents
    Worksheets("Supports + Foyers").Range("A2:FA5000").ClearContents
     
     
    If Not objFichiers.Count = 1 Then Exit Sub 'On sort si aucun fichier n'a été sélectionné
     
    Application.ScreenUpdating = False
     
    Set wbdest = ThisWorkbook 'classeur exécutant où sera collée la feuille
    Set wbsource = Workbooks.Open(objFichiers(1))
     
    wbsource.Sheets("Armoire").UsedRange.Copy Destination:=wbdest.Sheets("Armoires").Range("A1") '<<<<ADAPTER
    wbsource.Sheets("Support + Foyer").UsedRange.Copy Destination:=wbdest.Sheets("Supports + Foyers").Range("A1")
    wbsource.Close False
     
     
     
    Application.ScreenUpdating = True
     
    Fin:
    End Sub

###raw>template_hook.ano_emploi###