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

Excel Discussion :

Remplacer cellule vide par une valeur


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    cabinet de gestion
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : cabinet de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Remplacer cellule vide par une valeur
    Bonjour
    j'ai crée une macro qui me permet de remplacer les cellules vides d'une plage bien donnée par une autre valeur(en réalité cette valeur est 0 mais dans mes essais et par prudence j'ai pris la valeur 9999).
    Ma macro fonctionne bien mais seulement elle remplace toutes les cellules vides du tableau (le tableau part de E74 à AB85).
    Je souhaiterais que ma macro s'applique à toutes les lignes du tableau dont la valeur des cellules de la plage (E74:E85) sont supérieur à 0.

    Voici ma macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CelluleVide()
    Dim plage As Range
            Set plage = [E74:AB85].SpecialCells(xlCellTypeBlanks)
            For Each cell In plage
            If cell.Value = "" Then cell.Value = 9999
        Next
    End Sub
    Merci de m'aider.

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonsoir,
    Une proposition adaptée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CelluleVide()
    Dim plage As Range
            Set plage = [E74:AB85]
            For Each cell In plage
            If IsEmpty(cell) Then cell.Value = 9999
        Next
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    cabinet de gestion
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : cabinet de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bonjour
    merci pour votre réponse ;mais le résultat est toujours le meme :"la macro remplace toutes les cellules vides du tableau (le tableau part de E74 à AB85";alors que je "souhaiterais que ma macro s'applique à toutes les lignes du tableau dont la valeur des cellules de la plage (E74:E85) sont supérieur à 0.
    c'est à dire que si par exemple dans la plage (E74:E85), E74;E75 et E76 ont leur valeur supérieur à zéro alors:
    la macro devrait rechercher les cellules vides seulement dans la plage (E74:AB76) et les remplacer par 9999 et non dans tout le tableau.
    J'espere avoir été un peu plus clair.
    Merci de m'aider.

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,
    Autre proposition, si j'ai bien saisi cela doit être conforme à la demande.
    A vous de voir.
    Je n'ai riens prévus pour nettoyer un tableau.
    Je crois que ce sont des 0 que vous voulez mettre dans les vides donc le blocage, qui arrive quand on veut lancer la macro avec les 9999, pour dépacement de capacité ne se produira pas.
    De toute façon on pourrait l'éviter.

  5. #5
    Membre à l'essai
    Homme Profil pro
    cabinet de gestion
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : cabinet de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bonjour
    Encore merci pour la solution proposée;je l'ai testée,elle marche dans le fichier joint que vous m'avez donné ;par contre elle ne marche dans mon fichier et je ne sais pas pourquoi.j'ai beau cherché mais je ne trouve pas.
    Je vous envoie mon fichier par piece jointe.
    Veuillez m'aidez s'il vous plait.
    NBour le "dépassement de capacité" en utilisant "On Error Resume Next",cela regle le probleme.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,
    Gros problème avec votre tableau.
    1. Vous n'avez pas recopier le module VBA de mon fichier dans le votre.
    2. Vous masquez l'affichage des 0 dans la feuille or si j'ai bien lu vous voulez mettre des 0 dans les cellules vides.
    3. Pour les nombres que vous mettez il faut déclarer TotalLigne en Double au lieu de Integer c'est la cause du dépassement de capacité car les variables déclaréees en Integer sont limitées de -37000 à +37000 environ.
    4. Vous utilisez des cellules fusionnées pour élargir vos colonnes et le nombre de cellule fusionnées n'est pas constant il y en a à 3 cellules d'autres à 2 et il y en a 2 qui ne sont pas fusionnées. ça ne peut pas fonctionner comme ça.
    Il faut mettre les colonnes à 1 cellule en largeur et élargir la colonne. Il faut se rendre compte que quand vous avez 3 cellules fusionnées et que vous adressez une données à une de ces cellules elle sera renseignées dans la première à gauche et jamais dans les autres. Donc si vous êtes d'accord je vais modifier vos tableaux.
    De plus vous dites seulement maintenant que cela doit être appliqué à 50 feuilles. Il fallait dire cela au début. Pour cette raison il va falloir modifier le programme.
    Il faut d'abord que je sache si les 50 feuilles doivent être lue à la suite l'une de l'autre ou si elle seront lue une par une sur commande de la macro par un bouton dans chacune des feuilles.

    Donner rapidement une réponse à mes questions.

  7. #7
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,
    Voilà ma proposition pour les feuilles adaptées.
    Un bouton dans chaque feuilles permet l'inscription des 0.
    A vous de voir si cela vous convient.
    J'ai préparé 5 feuilles.
    Ca fonctionne comme vous l'aviez demandé.

  8. #8
    Membre à l'essai
    Homme Profil pro
    cabinet de gestion
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : cabinet de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bonjour
    Encore mille fois merci,une fois de plus tes propositions de solutions sont bonnes,elles marchent avec la modification de la structure de mon tableau.
    Mais je ne souhaiterais pas changer la structure de mon tableau;et apres analyse des differentes propositions faites j'ai pu améliorer le code et cela marche à merveille sur mon tableau sans que je l'ai modifiée.
    En tout cas merci beaucoup car c'est grace à vous que j'ai pu le faire.
    Merci forum.
    Voici mon code:
    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 CelluleVide()
    Dim plage As Range, myRange As Range, cel As Range
    Dim premLigne  As Integer, derLigne As Integer
    Dim premColonne As Integer, derColonne As Integer, TotalLigne As Double
    'Lignes et colonnes limitant la plage
    premLigne = 74: derLigne = 85
    premCol = 5: dercol = 28
    'Set plage = [E74:AB85]
    For ligne = premLigne To derLigne
            'On teste si la somme des cellules de la ligne en cours est > 0
            Set myRange = ActiveSheet.Range(Cells(ligne, premCol), Cells(ligne, dercol))
                TotalLigne = Application.WorksheetFunction.Sum(myRange)
            For Each cell In myRange
            If TotalLigne > 0 Then
            If IsEmpty(cell) Then cell.Value = 9999
        End If
        Next
     
        Next
    End Sub

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2015, 09h29
  2. Réponses: 4
    Dernier message: 17/09/2014, 16h29
  3. [XL-2013] Remplacer une cellule vide par une valeur
    Par Tiagra dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/09/2014, 20h45
  4. Remplacement des champs vides par une valeur N/A
    Par dandy87 dans le forum SSIS
    Réponses: 2
    Dernier message: 18/04/2013, 09h58
  5. [VxiR2] Remplacer cellules vides par une valeur
    Par mouhib dans le forum Webi
    Réponses: 7
    Dernier message: 01/12/2010, 09h53

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