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 :

VBA Comment faire en sorte que ma colonne résultat ne prenne pas en compte les cellules vident [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 18
    Par défaut VBA Comment faire en sorte que ma colonne résultat ne prenne pas en compte les cellules vident
    Bonjour à tous,
    j'ai automatiser avec du code VBA, que lorsque le champs de la première colonne (Num_voie) est égale à la valeur 0 et le champs de la deuxième colonne (nom_voie) possède la même adresse, dans la troisième colonne (compl) on affecte des valeurs de Z vers A. Mais mon problème est que lorsque j'exécute ma macro dans ma troisième colonne il prend en compte les cellules vides alors que je voudrais qu'il ne s'en préoccupe pas. Je vous met mon fichier ci-joint.

    J'obtiens ça :
    Nom : Capture2.PNG
Affichages : 89
Taille : 18,5 Ko

    Mais je voudrais ça :
    Nom : Capture3.PNG
Affichages : 88
Taille : 17,0 Ko

    Merci à vous

    test2.xlsm

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 684
    Par défaut
    Bonjour,

    Plutôt que de joindre ton fichier, peux-tu simplement afficher le code ? (de préférence en utilisant les balises codes)
    Beaucoup d'intervenant n'ouvrent pas les pièce jointes (cf. message épinglé), tu aura ainsi plus de réponses

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 267
    Par défaut
    hello,
    en Power Query M :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let    Source = Excel.CurrentWorkbook(){[Name="Tab_adresse"]}[Content],
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"NUM_VOIE", Int64.Type}, {"NOM_VOIE", type text}, {"COMPL", type text}}),
        #"Lignes groupées" = Table.Group(#"Type modifié", {"NUM_VOIE", "NOM_VOIE"}, {{"Data", each _, type table [NUM_VOIE=nullable number, NOM_VOIE=nullable text, COMPL=nullable text]}}),
        #"ColPerso ajoutée" = Table.AddColumn(#"Lignes groupées", "Personnalisé", each Table.AddIndexColumn([Data],"IndexNum", 90, -1)),
        #"Autres colonnes supprimées" = Table.SelectColumns(#"ColPerso ajoutée",{"Personnalisé"}),
        #"ColPerso développé1" = Table.ExpandTableColumn(#"Autres colonnes supprimées", "Personnalisé", {"NUM_VOIE", "NOM_VOIE", "COMPL", "IndexNum"}, {"NUM_VOIE", "NOM_VOIE", "COMPL", "IndexNum"}),
        #"ColPerso indexLettre" = Table.AddColumn(#"ColPerso développé1", "Index", each if [NUM_VOIE] = 0 then Character.FromNumber([IndexNum]) else ""),
        #"Colonnes supprimées" = Table.RemoveColumns(#"ColPerso indexLettre",{"COMPL", "IndexNum"})
    in
        #"Colonnes supprimées"
    Résultat :
    Nom : PQ2Mia30.PNG
Affichages : 72
Taille : 27,1 Ko

    Ami calmant, J.P

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 18
    Par défaut
    D'accord merci du conseil.

    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
    Sub COMPL()
     
    Dim nb_ligne As Integer
     
     
    nb_ligne = Range("A" & Rows.Count).End(xlUp).Row
     
    For i = 2 To nb_ligne
     
        If Range("A" & i) = 0 And Application.WorksheetFunction.CountIf(Range("B2:B" & nb_ligne), Range("B" & i)) > 0 Then
     
            Range("C" & i) = Chr(91 - Application.WorksheetFunction.CountIf(Range("B2:B" & i), Range("B" & i)))
     
        End If
     
    Next i
     
    End Sub

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 684
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu mets tes lettres suivant deux conditions : le nom de la voie (que tu prends déjà en compte) et le numéro = 0
    Du coup tu peux remplacer ton countif par un countifs

    je te propose de tester cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range("C" & i) = Chr(91 - Application.WorksheetFunction.CountIfs(Range("B2:B" & i), Range("B" & i),Range("A2:A" & i),0))

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 18
    Par défaut
    halaster08, c'est exactement ce que je voulais, merci à toi pour ton aide

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

Discussions similaires

  1. Comment faire en sorte que \b efface aussi \n
    Par kidpaddle2 dans le forum C
    Réponses: 1
    Dernier message: 20/07/2010, 18h39
  2. [Snow Leopard] Comment faire ne sorte que mes utilisateur n'aie pas le droit administrateur
    Par pierrot10 dans le forum Apple
    Réponses: 1
    Dernier message: 18/10/2009, 23h15
  3. Réponses: 2
    Dernier message: 07/02/2009, 09h43
  4. Réponses: 1
    Dernier message: 10/10/2008, 17h23
  5. Comment faire en sorte que le prog se fasse répéter
    Par LeonHONORE dans le forum Pascal
    Réponses: 3
    Dernier message: 20/04/2008, 22h41

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