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 forme si cellule "vide" dans ligne


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
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut Mise forme si cellule "vide" dans ligne
    Bonjour,
    Je recherche à faire un mise en forme conditionnelle de cette forme :
    Si NBval (A1:A7)>0 alors les cellules "vides" entre A1:A7 sont égal à /.
    J'ai écris ceci mais il ne fonctionne pas :
    =Si(NBVAL($A17:$AM17)>0;ESTVIDE($A17:$AM17)="/")
    Quelqu'un a t-il une solution ?

  2. #2
    Membre émérite
    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
    Par défaut
    Bonjour FloFlo50100,
    Tu peux essayer ceci:
    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
     
    Sub Test()
    Dim Sht As Worksheet
    Dim Rng As Range
    Dim LastVal As Integer
    Dim i As Integer
    Set Sht = ThisWorkbook.Worksheets("Feuil1")
    Set Rng = Sht.Range("A1")
    Rng = Rng.Offset(0)
     
    With Sheets("Feuil1")
        LastVal = .Cells(.Rows.Count, 1).End(xlUp).Row - 1 ' On compte le nombre de valeurs de la colonne A
    End With
     
    For i = 0 To LastVal
    If Rng.Offset(i, 0) = "" Then
    Rng.Offset(i, 0) = "/"
    End If
    Next i
    End Sub
    J'ai supposé que les valeurs à traiter étaient situées en colonne A ( entre A1 et A13 dans mon test mais ce code est valable si tu as plus ou moins de valeurs)
    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

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut
    Bonjour,
    Est-il simplement possible de faire ceci par une mise forme conditionnelle? Car j'ai atteint le maximum de taille de ma macro...

  4. #4
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut


    Bonjour,

    Si tu ne veux pas le faire par Macro, tu n'es pas dans le bon forum ! Je te redirige vers le bon forum dans ce cas

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut
    Ah ok ! Autant pour moi je vais créer ce post dans le bon forum dans ce cas..

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par floflo50100 Voir le message
    Bonjour,
    Est-il simplement possible de faire ceci par une mise forme conditionnelle? Car j'ai atteint le maximum de taille de ma macro...
    Euh... 121 lignes, c'est trèèèèèès loin d'être la taille maximum d'une macro. La plupart de mes macros font plusieurs centaines de lignes sans problème.

    Ou alors c'est que tu utilises le terme "taille" dans un autre sens que celui que je comprend.

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut
    D'accord oui j'ai peut être halluciné du coup, sais tu comment faire un code de cette forme :
    If cellule=vide sur la dernière ligne (Last row ?) entre (A:AM) then
    Cellule = "/"
    Je suis totalement perdu en prog...

  8. #8
    Membre émérite
    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
    Par défaut
    Peux-tu préciser ce que tu veux?
    Travailler sur des données en colonnes ?
    Si NBval (A1:A7)>0 alors les cellules "vides" entre A1:A7 sont égal à /.
    ou travailler sur des données en lignes?
    NBVAL($A17:$AM17)>0
    ce n'est pas exactement la même chose
    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

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par floflo50100 Voir le message
    D'accord oui j'ai peut être halluciné du coup, sais tu comment faire un code de cette forme :
    If cellule=vide sur la dernière ligne (Last row ?) entre (A:AM) then
    Cellule = "/"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Fin as Long
    Dim MaCel as Range
     
    Fin = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
     
    For Each MaCell in Range("A"&Fin&":AM"&Fin)
       If MaCell.Value = "" then MaCell.Value = "/"
    Next MaCell
    Je suis totalement perdu en prog...
    Ca n'a rien d'une fatalité immuable.

  10. #10
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par floflo50100 Voir le message
    =ESTVIDE($A17:$AM17)="/"
    Une chose est sûre : ça, ça ne peut pas marche.
    Une fonction Excel renvoie une valeur, ni plus ni moins. Elle ne peut pas servir à modifier le contenu d'une autre cellule.

    Pour ton problème, place dans tes cellules vide la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Si(NBVAL($A17:$AM17)>0;"/";"")
    Si tes cellules ne sont plus vides, ça voudra dire soit qu'un opérateur aura saisi quelque chose dedans (ce qui, de fait, écrasera la formule) soit que ces cellules contiennent déjà une formule et dans ce cas, il faudra intégrer la formule à question à celle que je te propose.

Discussions similaires

  1. [XL-2010] Compter cellule non vide à droite dans plage
    Par 8e8eClo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/01/2012, 12h48
  2. [XL-2003] Copier coller avec mise forme de cellule.
    Par hobine dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/12/2011, 00h39
  3. [XL-2007] Mise en forme conditionnelle cellule non vide et sans espace
    Par macleme dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/09/2011, 18h15

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