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 :

Mise en Forme MACRO EXCEL 2


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut Mise en Forme MACRO EXCEL 2
    Bonjour, comment puis je m'y prendre pr éviter que ma macro fasse des "trous"


    Mon code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ' Référence Principale
     
       Sheets("Feuil2").Select
        Range("S2:S1000").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
     
        Sheets("Export").Select
        Range("C2").Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Cela permet donc de copier coller des données chiffrés qui sont du style :

    D5441SN901282DGOIB
    D545CMAPCR9010
    D513190116FRYZMR
    B4101GBELR1791
    150 147 36
    150 147 23

    MD04MB

    Mais certaines de ces données ont des "trous"
    J'aimerais que ces trous soient enlevés par la même occasion que qd je les transfère, mais je ne vois pas du tout comment m'y prendre
    Je m'en remet une fois de plus à vos compétences..
    Si quelqu'un connait la réponse à ce probleme, je lui en serait très reconnaissant
    Merci bcp de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    donc la macro n'y est pour rien ?! Ce n'est pas elle qui crée les trous, si ?

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Non elle crée pas les trous, mais j'aimerais rajouter un code qui permettrait d'enlever ces trous, si ca existe??

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    La présentation de la problématique étant contradictoire …

    Voir du côté de la fonction Replace comme expliquée dans l'aide VBA intégrée.

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Yes dsl si je m'étais mal exprimé!
    Ya donc pas une fonction qui permettrait cela?

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Citation Envoyé par EnzoExcel Voir le message
    Ya donc pas une fonction qui permettrait cela?


    Citation Envoyé par Marc-L Voir le message
    Voir du côté de la fonction Replace comme expliquée dans l'aide VBA intégrée.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Enzo,
    Sinon il y a aussi la fonction Trim, voici l'aide d'Excel

    LTrim, RTrim et Trim, fonctions, exemple
    Cet exemple utilise les fonctions LTrim et RTrim pour éliminer respectivement les espaces se trouvant à gauche et à droite d'une variable chaîne. La fonction Trim permet d'éliminer les deux types d'espace.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim MyString, TrimString
    MyString = "  <-Trim->  "    ' Initialise la chaîne.
    TrimString = LTrim(MyString)    ' TrimString = "<-Trim->  ".
    TrimString = RTrim(MyString)    ' TrimString = <-Trim->".
    TrimString = LTrim(RTrim(MyString))    ' TrimString = "<-Trim->".
    ' L'utilisation de la fonction Trim seule produit le même résultat.
    TrimString = Trim(MyString)    ' TrimString = "<-Trim->"
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Merci MarcL et Eric

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ' Référence Principale
     
       Sheets("Feuil2").Select
        Range("S2:S1000").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
     
        Sheets("Export").Select
        Range("C2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
         TrimString = Trim(MyString) ' TrimString = "<-Trim->".

    Mais je ne sais pas comment disposer le code pour que cela fonctionne
    Quelqu'un aurait une idée??

  9. #9
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Enzo,
    Je ne connais pas la fonction, jamais utilisée à ce jour, mais j'ai trouvé cela sur un autre forum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1") = Application.Trim(Range("A1"))
    Rèférence:
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Ca ne fonctionne pas ya toujours un espace

    exemple ma case C38 reste tjr comme ça "150 147 36"

    et je voudrais qu'elle soit comme ça "15014736"

    Mais pensez-vous qu'un code existe pr empêcher cela?
    Ca m'éviterais de chercher pr rien si cest impossible..

    Merci de votre aide

  11. #11
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Enzo,
    As-tu essayé ceci, comme indiqué dans le lien proposé plus haut?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1") = Application.Trim(Application.Substitute(Range("A1"), Chr(160), Chr(32)))
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Oui je viens de réessayer mais ça ne fonctionne pas..

    (C'est ma colonne C à partir de C3 ou je veux qu'il n'y ait pas d'espace)

  13. #13
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Juste remplacer l'espace par une chaine vide !

    Espace : " " Chaine vide : ""
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Comment puis-je m'y prendre pr remplacer cela par une chaine vide??
    Car jai 700 BDD à traiter, j'aimerais rajouter un code qui le fasse automatiquement si ca existe..?

  15. #15
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Enzo,
    J'ai également testé la fonction Trim mais cela ne fonctionne pas non plus.
    J'ai alors suivi les conseils de MarcL, les ai adapté et voilà le résultat (ça fonctionne sur mon fichier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Range("A1").Value Like ("* *") Then
        Range("A1") = Replace(Range("A1"), " ", "")
        End If
    Dans ton cas tu devra réaliser une boucle pour parcourir toute ta colonne.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  16. #16
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    tu as besoin de cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'la fonction subtitute substitue l'espace en vide
    Sub Macro()
        ActiveCell.Value = Application.WorksheetFunction.Substitute(ActiveCell, " ", "")
    End Sub
    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    ahh yesssss merci beaucoup Eric!!! et cmt je fais pour que ce soit sur toute la colonne?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Range("C38").Value Like ("* *") Then
        Range("C38") = Replace(Range("C38"), " ", "")
        End If
    Car j'ai essayé sur une case qui en avait besoin ca a très bien marché!
    Mais j'aimerais que ca le fasse automatiquement pr toute la colonne C à partir de C3
    Mais je vois pas ce qui faudrait marquer

  18. #18
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Enzo,
    Voici
    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
     
    Sub Remplace_Espace()
    Dim Export As Worksheet
    Dim der  As Integer
    Dim Ligne As Range
    Dim i As Integer
     
     
    Set Export = ThisWorkbook.Sheets("Export")
     
    With Export
        der = .Cells(.Rows.Count, 3).End(xlUp).Row
     
        For i = 1 To der
        Cells(1, 3).Select
             If Cells(i, 3).Value Like ("* *") Then
             Cells(i, 3) = Replace(Cells(i, 3), " ", "")
             End If
        Next i
     
    End With
    End Sub
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Merci bcp Eric !!

  20. #20
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Enzo,
    Encore un oubli de ma part , tu peux enlever la ligne n°15 qui ne sert à rien...

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] Mise en forme classeur excel avec 2 onglets
    Par Misha dans le forum IHM
    Réponses: 1
    Dernier message: 01/10/2009, 17h40
  2. Mise en forme conditionnelle - EXCEL 2007
    Par Mimoune932 dans le forum Excel
    Réponses: 2
    Dernier message: 11/09/2009, 08h16
  3. code vba mise en forme graphique excel
    Par juanito37 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/08/2009, 14h41
  4. mise en forme fichier excel depuis code vba (Access 2003)
    Par Kass4r dans le forum VBA Access
    Réponses: 8
    Dernier message: 11/04/2008, 11h38
  5. Réponses: 1
    Dernier message: 16/03/2007, 10h30

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