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 :

Activation de cellules pour une mise en forme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    apprenti
    Inscrit en
    Juillet 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 25
    Par défaut Activation de cellules pour une mise en forme
    Bonjour,
    j'ai un soucis qui je pense sera assez simple pour les bons développeurs que vous êtes :p

    la situation:
    - J'ai un userform sur lequel je rentre des informations (via des textbox).
    -Quand je click sur ok, les informations sont transféré sur ma "base de données 2" (un tableur) , dans la première ligne vide, dans les colonnes prévues .

    Pour l'instant pas de soucis.

    Ce que je souhaite, c'est que lorsque mon information est envoyé dans une cellule, je puisse programmer une mise en forme, cellule par cellule.

    Les mise en forme que j'ai fait jusque maintenant ne fonctionne pas, puisque elle se font toujours sur ma cellule A1.


    Avec le code présent ci dessous, avez vous un exemple a me donner?

    Par exemple, en ligne 13, mettons 2 bordure, un fond coloré, un police et une taille de police.
    Ainsi, je pourrais avec cet exemple programmer le reste de mes cellules




    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
     
    Private Sub bouton_ok_click()
        'Quand je clique sur ok, la feuille Base De Données 2 est activé, la cellule A1 est activé.
        'On cherche ensuite la premiere cellule vide sous A1, puis on la sélectionne.
     
    Workbooks("userform commande").Sheets("base de données 2").Select
    Range("A1").Select
     
        'mes textbos sont transférer vers mes cellules du tableur
     
    selection.End(xlDown).Offset(1, 0) = TextBox8
     
            'J'aimerai faire une mise en forme par cellule, independamment des cellules gauche et droite!!!
     
    selection.End(xlDown).Offset(0, 2) = TextBox1
    selection.End(xlDown).Offset(0, 3) = TextBox9
    selection.End(xlDown).Offset(0, 5) = TextBox10
    selection.End(xlDown).Offset(0, 7) = TextBox11
     
     
        ' Je ré-initialise mes textbox pour une nouvelle saisie
     
    TextBox9.Text = ""
    TextBox1.Text = ""
    TextBox8.Text = ""
    TextBox11.Text = ""
    TextBox10.Text = ""
     
    End Sub

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,

    ben pour t'aider à trouver le code utilise l'enregistreur de macro ... http://fauconnier.developpez.com/tut...istreur-macro/


    et aussi oublie tous ses Select , Selection , Activate inutile ...

    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
    Private Sub bouton_ok_click()
        'Quand je clique sur ok, la feuille Base De Données 2 est activé, la cellule A1 est activé.
        'On cherche ensuite la premiere cellule vide sous A1, puis on la sélectionne.
     
    Dim r as range ' ma cellule de base
     
    set r = Workbooks("userform commande").Sheets("base de données 2").Range("A1").End(xlDown)
     
    r.Offset(1, 0) = TextBox8
     
            'J'aimerai faire une mise en forme par cellule, independamment des cellules gauche et droite!!!
     
    r.Offset(0, 2) = TextBox1
    r.Offset(0, 3) = TextBox9
    r.Offset(0, 5) = TextBox10
    r.Offset(0, 7) = TextBox11
    ...

  3. #3
    Membre averti
    Homme Profil pro
    apprenti
    Inscrit en
    Juillet 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 25
    Par défaut
    Effectivement, ton code prend moins de place...

    Merci pour ton conseil sur la mise en forme via l’éditeur macro, mai mon handicap principal, c'est que je ne parvient pas a faire la mise en forme SUR la cellule concerné.

    C'est dur à expliquer:

    Dans une mise en forme, on sélectionne une plage ou une cellule particulière. Il suffit de mettre range ("A1") et c'est fait

    Eh bien, la, dans mon code, je ne parviens pas à sélectionner les bonnes cellules, en fonction de r.Offset...

    Si je suis ton code:

    ligne 9: Cette cellule doit subir une mise en forme défini
    ligne 13: cette cellule doit subir une mise en forme défini, mais différente de la précédente.

    En fait en même temps que j'insère ma textbox en cellule, la mise en forme s'effectue, sans intervention extérieure.


    Ce doit être une histoire d'activation ou un truc comme ca mais je trouve pas

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu as essayé l'enregistreur de macro ?

    montre le code qui ne fonctionne pas ..

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Test ce code et adapte :
    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
     
    Private Sub bouton_ok_click()
     
        Dim Cel As Range
     
        'défini la cellule en A sur la première ligne vide
        Set Cel = ThisWorkbook.Worksheets("base de données 2").Cells(Rows.Count, 1).End(xlUp).Offset(1)
     
        'inscrit les valeurs
        Cel.Value = TextBox8.Text
        Cel.Offset(0, 2).Value = TextBox1
        Cel.Offset(0, 3).Value = TextBox9
        Cel.Offset(0, 5).Value = TextBox10
        Cel.Offset(0, 7).Value = TextBox11
     
        'formate (adapter ici...!)
        Cel.Font.Bold = True
        Cel.Offset(0, 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
        Cel.Offset(0, 3).Interior.ColorIndex = 3
        Cel.Offset(0, 5).BorderAround xlContinuous, xlMedium, xlColorIndexAutomatic, &H40C0&
        Cel.Offset(0, 7).Font.Italic = True
     
        'vide les textbox
        TextBox9.Text = ""
        TextBox1.Text = ""
        TextBox8.Text = ""
        TextBox11.Text = ""
        TextBox10.Text = ""
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    apprenti
    Inscrit en
    Juillet 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 25
    Par défaut
    Je souhaite que la mise en forme (en gras) s'applique sur la cellule qui reçois la textbox 8.



    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
    Private Sub bouton_ok_click()
        'Quand je clique sur ok, la feuille Base De Données 2 est activé, la cellule A1 est activé.
        'On cherche ensuite la premiere cellule vide sous A1, puis on la sélectionne.
     
    Dim r As Range ' ma cellule de base
    
    Set r = Workbooks("userform commande").Sheets("base de données 2").Range("A1").End(xlDown)
     
    r.Offset(1, 0) = TextBox8
    
            selection.Interior.ColorIndex = 46
            With Font
            .Bold = True
            .Size = 16
            .Name = "Calibri"
            End With
     
            
     
    r.Offset(1, 2) = TextBox1
    r.Offset(1, 3) = TextBox9
    
    ..............

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Ben relit mon premier message et supprime ce Selection !!

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

Discussions similaires

  1. Copie de cellules soumis à une mise en forme conditionnelle
    Par nadyves dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 22/08/2017, 01h19
  2. Detecter si une cellule possede une mise en forme
    Par hedidev1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2015, 16h13
  3. [XL-2007] Formule pour une mise en forme conditionnelle
    Par Pierrot78360 dans le forum Conception
    Réponses: 5
    Dernier message: 05/10/2011, 17h52
  4. Cellules avec une mise en forme conditionnelle
    Par Peanut dans le forum Excel
    Réponses: 2
    Dernier message: 31/07/2008, 13h47
  5. Modifier un script dans pour une mise en forme
    Par Baldric de Dol dans le forum Langage
    Réponses: 0
    Dernier message: 12/04/2008, 14h26

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