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 :

Passage d'un cas particulier à l'étude d'une colonne [Débutant(e)]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Par défaut Passage d'un cas particulier à l'étude d'une colonne
    Bonjour à tous,

    Débutant sur Excel j'ai laborieusement construit une macro pour effectuer les actions suivantes :
    1) Extraire les Adresses mail dans les cellules de la colonnes F
    --> Les cellules de la colonne F ont le format suivant : XXXXXX@yyyy.fr: NOM, Prénom$XXXXXX@yyyy.fr: NOM, Prénom$...
    2) lister les adresses dans une autre feuille en éliminant les doublons.

    J'ai réussi à faire quelque chose qui marche sur un cas particulier : 3ieme Macro ci-dessous : Sub ActeursSupplementaires()
    Par contre lorsque j'essaie de passer du cas particulier au cas général, à savoir ne pas étudier une chaine de texte mais toutes les cellules de la colonne F, la macro se "casse". Malgré mes efforts je n'arrive pas à résoudre le problème....

    L'erreur "5" tombe sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau(j) = Left(Tableau(j), InStr(Tableau(j), ":") - 1)
    . Et pas de problème sur la macro de cas particulier : Sub ActeursSupplementaires()

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    Sub Listingauteurs()
        Dim ColonneF As String
        Dim Tableau() As String
        Dim GAIA() As String
        Dim h, i, j, k, l, m, n As Integer
        Dim Doublon As Boolean
        Dim Auteurs As Range
     
        n = 1
        k = 0
     
        Worksheets("Base_IDEAS").Activate
        For h = 2 To 500
     
        ColonneF = Cells(h, 6).Value
     
        ReDim GAIA(k)
     
            Tableau = Split(ColonneF, "$")
     
        For j = 0 To UBound(Tableau)
     
            Tableau(j) = Left(Tableau(j), InStr(Tableau(j), ":") - 1)
     
        Next j
     
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'Debug.Print Tableau(i)
            GAIA(k) = Tableau(i)
            k = k + 1
            ReDim Preserve GAIA(k)
     
        Next i
     
        For k = 0 To UBound(GAIA)
            Debug.Print GAIA(k)
        Next k
     
        Next h
     
     Debug.Print ("passage à l'étape suppression de Doublons")
     
     
     
    Worksheets("ListeGAIA").Activate
    Range(Cells(1, 1), Cells(UBound(GAIA), 1)) = Application.Transpose(GAIA)
     
     Call GestionDoublons
     
     End Sub
     
     Sub GestionDoublons()
     
    Dim l As Integer
      l = 2
     
     Range("A2").Sort Range("A2"), xlAscending, Header:=xlNo
     While Cells(l, 1).Value <> ""
        If Cells(l, 1).Value = Cells(l - 1, 1).Value And Cells(l, 1).Value <> "" Then
            Cells(l, 1).Delete
            l = l - 1
     
        End If
     
        l = l + 1
    Wend
     
    End Sub
     
    Sub ActeursSupplementaires()
     
      Dim Tableau() As String
        Dim Auteurs As String
        Dim GAIA() As String
        Dim h, i, j, k, l, m, n As Integer
        Dim Doublon As Boolean
     
     
        k = 0
        n = 1
        ReDim GAIA(k)
     
     
     
     
            Tableau = Split("AF1065@grdf.fr: FAUCHER, Helene$OG1054@grdf.fr: HAGUE, Mickael$KY1042@grdf.fr: AUDEBERT, Francois$DQ1042@grdf.fr: DE LA SALLE, BENOIT", "$")
     
        For j = 0 To UBound(Tableau)
     
            Tableau(j) = Left(Tableau(j), InStr(Tableau(j), ":") - 1)
     
        Next j
     
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'Debug.Print Tableau(i)
            GAIA(k) = Tableau(i)
            k = k + 1
            ReDim Preserve GAIA(k)
     
        Next i
     
        For k = 0 To UBound(GAIA)
            Debug.Print GAIA(k)
        Next k
     
     Debug.Print ("passage à l'étape suppression de Doublons")
     
     
     
    Worksheets("ListeGAIA_Acteurs_supp").Activate
    Range(Cells(1, 1), Cells(UBound(GAIA), 1)) = Application.Transpose(GAIA)
     
     Call GestionDoublons
     
    End Sub
    Pouvez-vous me venir en aide ?

    Merci par avance pour votre contribution

    Pilsoner
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    ton erreur commence à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim h, i, j, k, l, m, n As Integer
    où seul n est typé en integer, les autres variables l'étant en variant
    De plus : en typant en integer, il a la limite d'un Integer. Si tu dépasses ette limite, c'est le type long, qu'il te faut utiliser.

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Par défaut
    Bonjour un paria,

    Merci beaucoup pour ton retour !

    1) Pour être certain de ne pas faire d'erreur j'ai donc bien défini toutes les variables séparément.
    2) Merci pour ton retour sur le format de variable. Normalement la limite ne sera pas dépasser dans mon cas

    3) Le problème reste présent... Je me permets de douter que la définition des variables citées ci-dessus. En effet la troisième macro est bien fonctionnelle.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je me permets de douter que la définition des variables citées ci-dessus. En effet la troisième macro est bien fonctionnelle.
    Tu parles ! le tableau qui y est traité (un array) ne contient, lui, que 4 éléments.
    Le problème reste présent...
    montre le code écrit (après les corrections). Et dis-nous combien vaut j lorsque tu reçois le message d'erreur.

    Je te fais par ailleurs observer que cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau(j) = Left(Tableau(j), InStr(Tableau(j), ":") - 1)
    ne peut que générer une erreur si tableau(j) ne contient pas ":" (bien évidemment).

  5. #5
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Par défaut
    1) Mes données d'entrées sont mal posées. Je m'en excuse. Je vais modifier le message de base

    2) Tu changes tout de suite de ton toi avec tes "Tu parles!", "bien évidemment" (lorsque la personne qui pose la question se présente en parlant en premier de son très bas niveau.
    --> Top ton ton convivial mais n'oublie pas de respecter un peu les gens fiston !

    3) Je regarde tout ça en rentrant chez moi et poste mes corrections et avancements


  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    mais n'oublie pas de respecter un peu les gens fiston !
    désolé, mais il n'y avait aucun irrespect dans "tu parles!", qui veut dire également "pardi" en Français en fonction du contexte
    Mais je ne suis pas là pour m'exposer à la susceptibilité (surtout mal venue).
    Et je ne suis pas là non plus pour énoncer des règles de syntaxes à un débutant qui les met de surcroît en doute au seul fait que "ça marche pourtant ici ou là"..
    Le "fiston" pense que tu as non seulement du être père très très très jeune, mais que même ainsi du dois approcher les 100 ans. Félicitations.
    Je te souhaite bonne chance dans la réussite de ton projet.

Discussions similaires

  1. Effacer (cas particulier) d'un champ de formulaire
    Par frog43 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 17/05/2006, 18h29
  2. Réponses: 27
    Dernier message: 12/01/2006, 11h04
  3. cas particulier agaçant
    Par devdébuto dans le forum C
    Réponses: 17
    Dernier message: 13/12/2005, 23h45
  4. Enregistrement courant après refresh [cas particulier]
    Par say dans le forum Bases de données
    Réponses: 8
    Dernier message: 02/08/2005, 15h59

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