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 :

Chercher une chaîne et diverses actions


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut Chercher une chaîne et diverses actions
    J'ai un document Excel comprenant environ 70 000 lignes. J'aimerais avoir une macro qui fasse ceci:

    Chercher dans la colonne A, à chaque 20 lignes, commençant à 4 (donc lignes 4, 24, 44, 64, etc. jusqu'à la fin du document), si les 3 derniers caractères sont "99 ", donc 9 9 et espace.

    Chaque fois que c'est le cas, j'aimerais que la formule me copie, dans colonne B (en B1 pour la 1re occurrence, en B2 pour la 2e, etc.), le contenu de la 15e ligne de la colonne A.

    J'aimerais également que le contenu de la 18e ligne soit copié en C1.

    Bref si à la fin de la ligne 4, j'ai "99 ", en B1 je veux le contenu de la 15e ligne, en C1 celui de la 18e ligne. Si à la fin de la ligne 24 j'ai "99 ", en B2 je veux le contenu de la 35e ligne.

    Je ne sais pas si c'est possible, mais j'espère vraiment que vous pouvez m'aider. Je suis trop nul avec le codage.

    Merci beaucoup.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Ce bout de code devrait faire l'affaire.
    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
    Sub CopieValeurs()
        Dim ColA As Variant
        Dim ColB As Variant
        Dim ColC As Variant
        ColA = Range("A1:A" & Range("A4").End(xlDown).Row)
        ColB = Range("B1:B" & UBound(ColA, 1))
        ColC = Range("C1:C" & UBound(ColA, 1))
        Dim ai As Long
        Dim bi As Long
        bi = 1
        For ai = 4 To UBound(ColA, 1) Step 20
            If Right(ColA(ai, 1), 3) = "99 " Then
                ColB(bi, 1) = ColA(ai + 11, 1)
                ColC(bi, 1) = ColA(ai + 14, 1)
                bi = bi + 1
            End If
        Next ai
     
        Range("B1:B" & UBound(ColB, 1)) = ColB
        Range("C1:C" & UBound(ColC, 1)) = ColC
     
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut
    Je te remercie de ta réponse. Par contre, lorsque je lance la macro, il ne se produit absolument rien. Je ne comprends pas

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Re.

    Par contre, lorsque je lance la macro, il ne se produit absolument rien.
    Parce qu'il fallait qu'elle fasse quelque chose ?

    Plus sérieusement, j'ai testé la macro sur un tableau similaire à celui présenté.
    Et la macro semblait faire le travail.

    Si tu as bien collé le code dans l'onglet de la feuille contenant les valeurs, post un extrait de ton fichier 40 lignes devrait suffire à voir ce qui ne marche pas.
    Mais garde la même mise en page (première ligne / colonne contenant des valeurs identique, format de donnée identique, etc ...).

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Par défaut
    Bonsoir,

    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
    Sub Copie99()
    Const PAS = 20
    Const CHAINE = "99 "
    Const COLA_DEPART = 4
     
    Dim lign_cour_A As Long
    Dim lign_cour_B As Long
    Dim lign_cour_C As Long
     
    Dim dern_lign_A As Long
     
        lign_cour_B = 1
        lign_cour_C = 1
        dern_lign_A = Cells(Rows.Count, 1).End(xlUp).Row
     
        For lign_cour_A = COLA_DEPART To dern_lign_A Step PAS
            If Right(Cells(lign_cour_A, 1), 3) = CHAINE Then
                Cells(lign_cour_B, 2) = Cells(lign_cour_A + 11, 1)
                lign_cour_B = lign_cour_B + 1
                Cells(lign_cour_C, 3) = Cells(lign_cour_A + 14, 1)
                lign_cour_C = lign_cour_C + 1
            End If
        Next
    End Sub

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut
    Halo2550 : Merci beaucoup! Ça fonctionne #1!

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/02/2012, 17h04
  2. [Tableaux] Chercher une chaîne de caractères dans un array()
    Par Julien Rozier dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2008, 13h55
  3. Chercher une chaîne de caractères dans une liste
    Par baedal dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/05/2007, 00h42
  4. Chercher une chaînes de caractères
    Par Llaur76 dans le forum Excel
    Réponses: 4
    Dernier message: 15/05/2007, 23h28
  5. chercher une chaîne dans un Tableau
    Par turbo_chess dans le forum C
    Réponses: 4
    Dernier message: 29/03/2007, 13h36

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