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 :

définir une plage de cellule par référence à la recherche d'une autre cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut définir une plage de cellule par référence à la recherche d'une autre cellule
    Bonjour

    qui pourrait m'indiquer le code à utiliser pour (sous vba 97)

    recopier vers le bas la première valeur trouvée en colonne A (ici valeur 163961 qui serait en A22 par exemple ) jusqu'à rencontrer la prochaine cellule qui contient une valeur (ici en A102 )

    NB:a chaque fois des cellules vides séparent les deux valeurs

    et ainsi de suite (boucle ...) cette dernière valeur rencontrée serait recopiée dans les cellules vides vers le bas jusqu'à rencontrer la prochaine cellule comportant une valeur...

    Merci pour votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Donc, si je reformule, tu cherches une valeur.
    Une fois trouvée tu veux la recopier tant que les cellules sont vides
    Tu cherches une nouvelle valeur, tu la recopies tant que les cellules sont vides...
    etc.
    Si c'est ça, qu'est ce qui arrête ta boucle ?
    Si ce n'est pas ça, tu dis
    A+

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    en effet dans l'idéal le code repèrerait la dernière cellule "servie" de ma colonne B

    Merci

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    On manque d'info mais tu peux regarder si ça t'irait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub RecopierDerniereValeurTrouvee()
    Dim maVal As Variant, c As Variant, DerLig As Long
    Dim FL1 As Worksheet, Plage As Range, Valeur
        Set FL1 = Worksheets("Feuil1")
        DerLig = FL1.Range("B1").SpecialCells(xlCellTypeLastCell).Row
        Set Plage = FL1.Range("B1:B" & DerLig)
        For Each Cell In Plage
            If Cell = "" Then
                Valeur = Cell.Offset(-1, 0).Value
                Cell.Value = Valeur
            End If
        Next
    End Sub
    A+

    PS - Qu'est-ce que c'est que cette manie de ne pas répondre aux questions posée ? Hein ?

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    désolé je croyais avoir répondu à la question...

    j'ai essayé le code une erreur d'exécution 100' est renvoyée et renvoie à la ligne Valeur = Cell.Offset(-1, 0).Value

    cela provient t'il de cette ligne ? Dim FL1 As Worksheet, Plage As Range, Valeur

    ou valeur n'est pas défini ... (si je dit des bétises faut pas m'en vouloir je débute vraiment et n'en suit m^me pas encore aux variable)

    j'ai donc déclaré (au hasard ) value de la sorte
    Dim FL1 As Worksheet, Plage As Range, Valeur as variant

    j'ai executée la macro qui s'éxécute sans erreur mais ne produit aucun résultat

    je pense que je me suis mal exprimé sur ce que j'espérai faire , j'ai don joint un txt montrant un exemple du fichier excel que j'ai à traiter ...

    donc dans l'exemple la 1ère valeur en colonne A serait trouvée (donc 163961) et serait recopiée vers le bas jusqu'à la prochaine valeur ici 163b63

    La boucle continuerait ainsi jusqu'à :

    - la dernière ligne du tableau (soit la dernière ligne de la colonne B)

    dans le code que vous m'avez fourni , je ne vois aucune référence à la colonne A (mais peut être cela est il implicite dans les formules je ne maîtrise vraiment pas )

    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai regardé ton fichier. Et puis j'ai relu ta question. Je me suis "simplement" trompé de colonne
    Ce qui m'a trompé, c'est
    en effet dans l'idéal le code repèrerait la dernière cellule "servie" de ma colonne B
    En fait, comme tes valeurs se trouvent également sur la colonne A, on n'a pas à s'occuper de la colonne B. Fais un test avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub RecopierDerniereValeurTrouvee()
    Dim maVal As Variant, c As Variant, DerLig As Long
    Dim FL1 As Worksheet, Plage As Range, Valeur
        Set FL1 = Worksheets("Feuil1")
        DerLig = FL1.Range("A1").SpecialCells(xlCellTypeLastCell).Row
        Set Plage = FL1.Range("A1:A" & DerLig)
        For Each Cell In Plage
            If Cell = "" Then
                Valeur = Cell.Offset(-1, 0).Value
                Cell.Value = Valeur
            End If
        Next
    End Sub
    Tu dis
    A+

Discussions similaires

  1. Réponses: 16
    Dernier message: 11/12/2013, 12h20
  2. Réponses: 3
    Dernier message: 12/09/2013, 12h27
  3. Réponses: 4
    Dernier message: 11/08/2008, 16h29
  4. Recherche d'une plage de cellules identiques entre 2 feuilles Excel
    Par asayeh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/06/2008, 23h39
  5. Réponses: 10
    Dernier message: 25/05/2007, 18h05

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