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 :

Remplacer toutes les cellules vides [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Par défaut Remplacer toutes les cellules vides
    Bonjour,

    Depuis ACCESS, j'exploite un fichier Excel qui malheureusement contient des cellules vides que j'aimerai remplacer par la chaîne "VIDE" avant de les importer à l'aide de TransferSpreadSheet.

    J'ai une colonne nommé montant dont je connais l'indice de colonne et il faudrait que pour cette colonne les cellules vides reçoivent plutôt la valeur entière 0

    Comment le faire?

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Tu peux partir là-dessus (enregistreur de macros) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Columns("U:U").Select 'ta colonne où il faut remplacer les cellules vides
        Selection.replace What:=" ", Replacement:="0", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Est-ce que tu recherches ?

    EDIT : ici, tu remplaces un espace par un 0. Pour vérifier qu'une cellule est vide, il faut utiliser ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsEmpty(ActiveCell.Value)
    et le tour est joué !

    EDIT2 : allez, je te l'ai fait. Ca donne ça au final !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim i As Long
     
        Application.ScreenUpdating = False
     
        For i = 1 To 500 'Pour les 500 premières lignes        
            If IsEmpty(Cells(i, 1).Value) Then
                Cells(i, 1).Select 'Pour la colonne A
                Selection.replace What:=Cells(i, 1).Value, Replacement:="0", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                    ReplaceFormat:=False
            End If
        Next
     
        Application.ScreenUpdating = True

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    voici une solution un poil plus rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim maRange as range
    maRange = activeworkbook.sheets("onglet 1").range("A1:K500")
    maRange.specialcells(xlCellTypeBlanks).value = "vide"

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Par défaut
    Merci pour ta réopnse qui est la solution pour ce genre de soucis.

    J'ai fais des recherches en même temps et ai trouvé ce topic qui contient la réponse à ma question également:
    http://www.developpez.net/forums/d51...cellules-vides

    Je me suis rendu compte que toute mes cellule ne sont pas vides donc, je fais plutôt des test sur la longueur des éléments.

    J'adapte vos réponses à ma situation et je vous tiens au courant.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Par défaut
    OK, j'ai résolu mon soucis par ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        'Workbooks(1).Sheets(1).Cells.SpecialCells(xlCellTypeBlanks).Value = "VIDE"
            Set plage = Workbooks(1).Sheets(1).Range(Cells(1, 1), Cells(nbrelignes, nbrecolonnes))
            For Each Cell In plage
                If (Len(Cell.Value) < 2) Then Cell.Value = "VIDE"
            Next
    Merci encore à vous

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

Discussions similaires

  1. [XL-2010] Code aléatoire pour toutes les cellules vides d'une colonne
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/09/2014, 16h07
  2. [XL-2010] Debuts sur VBA, remplacer toutes les cellules >0 par 1 sur Excel 2010
    Par labjo14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2014, 16h35
  3. [Débutant] Remplir toute les cellules vide de la derniere rangee
    Par lololaurent dans le forum VB.NET
    Réponses: 0
    Dernier message: 13/02/2014, 22h23
  4. [XL-2010] Remplacer dans toutes les cellules
    Par arnogb69 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 14/11/2013, 10h34
  5. Sélectionner toutes les cellules non vides d'une feuille
    Par Cantalou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2008, 16h38

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