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 :

Problème de parcours de tableau "Resized"


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2020
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Problème de parcours de tableau "Resized"
    Bonjour,

    Merci de me lire. Je suis en formation sur VBA pour mon entreprise.
    J'ai un petit problème concernant le parcours d'une plage.

    J'aimerais Compter le nombre d'occurrence du symbole $ pour chaque cellule de la colonne A et inscrire ligne par ligne le résultat dans la colonne B.
    Malheureusement, j'ai un problème de typage d'une plage.

    En résumé j'extrais dynamiquement la plage grâce à CurrentRegion, je fais le tri pour ne garder que la colonne qui m'intéresse.
    Et ensuite je veux parcourir la colonne extraite, mais malheur, ça ne marche pas malgré mon utilisation de "For each".
    Quelqu'un voit-il le problème?

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    ' Compter le nombre de dirigeants
    Sub Compte()
     
        ' variables
        Dim plageSource As String
        Dim nomPlageSource As String
        Dim plageCible As String
        Dim nomPlageCible As String
        Dim rng As Range
        Dim rngColonne As Range
        Dim rng2 As Range
        Dim cellule As Range
        Dim c As Integer
        Dim i As Integer
     
        ' Saisie des données
        plageSource = "ListeBruteDesDirigeants"
        nomPlageSource = "C1:C3"
     
        ' Corps
        Set rng = ThisWorkbook.Worksheets(plageSource).Range(nomPlageSource).CurrentRegion
        Set rngColonne = rng.Columns.Item(3)
     
        ' Debug 
        MsgBox (rngColonne.Rows.Count)
        MsgBox (rngColonne.Columns.Count)
     
        ' On redimensionne
        Set rng2 = rngColonne.Resize(rngColonne.Rows.Count, 1)
        ' Debug
        MsgBox ("row=" & rng2.Rows.Count)
        MsgBox ("col=" & rng2.Columns.Count)
        MsgBox (rng2.Address)
     
        ' On parcourt la colonne
        For Each cellule In rng2
            c = 0
            ' Debug
            MsgBox ("add = " & cellule.Address)
            ' Malheur, je me rend compte que l'objet est toujours la colonne et n'est pas la cellule, contrairement à ce que je pense.
     
            ' Problème de typage, car une colonne n'a pas de valeur. 
            For i = 1 To Len(cellule.Value)
                ' Debug
                ' MsgBox (VarType(cellule.Value))
                If (Mid(cellule.Value, i, 1) = "$") Then
                    c = c + 1
                End If
            Next
            ' Debug
            MsgBox (cellule.Address)
            Cells(cellule.Row, cellule.Column + 1).Value = c
        Next cellule
    End Sub
    Voici le fichier en pièce jointe.

    Merci de m'avoir lu et j'espère que vous trouverez mon abomination.
    Merci pour votre aide.

    Bien à vous,
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    juillet 2014
    Messages
    2 477
    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 477
    Points : 5 353
    Points
    5 353
    Par défaut
    Bonjour,

    essaye ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each cellule In rng2.cells
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

Discussions similaires

  1. [WB18] Problème de parcours de tableau à plusieurs dimensions de chaîne
    Par fabian_RemLab dans le forum WebDev
    Réponses: 0
    Dernier message: 14/06/2015, 00h46
  2. problème de Wshshell.run avec quotes & variable
    Par frenchlion dans le forum VBScript
    Réponses: 8
    Dernier message: 29/11/2011, 17h35
  3. Problème de parcours de tableau bluffant
    Par lodacom dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 20/12/2010, 09h06
  4. Réponses: 1
    Dernier message: 13/09/2007, 16h57
  5. Problème sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/03/2005, 11h47

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