Macro VBA

odin13013 Messages postés 12 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je dois finaliser une macro excel sous VBA mais je n'arrive pas à faire la fonction suivante:

si la cellule = 1 (dans mon tableau cette cellule se trouve à droite)
décaller à gauche de 5 colonnes (on tombe sur une cellule vide)
Puis descendre jusqu'a ce que la cellule soit non vide

Si quelqu'un peut m'aider please????

Merci par avance
Antony
Configuration: Windows XP Internet Explorer 6.0

3 réponses

  1. ed
     
    salut ! voilà :)
    ça te va ?

    Sub test()

    Sheets(1).Range("l'adresse de ta cellule").Select

    If Range("l'adresse de ta cellule").Value = 1 Then

    ' tu vas 5 colonnes à gauche
    ActiveCell.Offset(0, 5).Select

    ' on boucle tant que pas de cellule non vide
    Do While ActiveCell.Value = ""
    ' ça c'est le code qui te fait descendre d'une ligne à chaque boucle
    ActiveCell.Offset(1, 0).Select
    Loop

    End If

    End Sub
    0
  2. odin13013 Messages postés 12 Statut Membre
     
    Hello,

    Merci pout ta réponse!!!

    En faite voila le code avant la fonction que je souhaite mettre:

    For Each n In Sheets("feuil2 (2)").[g3:g2500]

    If (Sheets("feuil2 (2)").Cells(k, 7).Value <> "") Then

    If (Sheets("feuil2 (2)").Cells(k, 7).Value < v Or Sheets("feuil2 (2)").Cells(k, 7).Value > w) Then
    Sheets("feuil2 (2)").Cells(k, 7).Interior.ColorIndex = 3
    'et la y'aurait ton code

    Du coup qd je fais Sheets(1).Range("l'adresse de ta cellule").Select Comment je fais pour donneer l'adresse de la cellule?

    Ah oui aussi...lol une foi que je suis sur la cellule non vide comment je fais pour récuperer la valeur de cette cellule pour la mettre par exemple sur feuille deux ??

    Mici a toi !!!!!
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    macro à adapter (ton code en réponse m'a embrouillé). Je fais ci dessous la recherche sur lla feuille1 et je transfère le résultat en feuille 2
    Option Explicit
    Const col As Byte = 1 'n°colonne du 1 à adapter
    Sub colloneàgauche()
    Dim lig1 As Long, lig2 As Long
    Dim valeur
    
    With Sheets(1)
        lig1 = .Columns(col).Find(1, .Cells(65536, col)).Row
        valeur = .Columns(col + 5).Find("*", .Cells(lig1 - 1, col + 5))
    End With
    Sheets(2).Range("A1") = valeur
    
    End Sub
    

    merci de mettre tes codes dans la balise "code" ( l'icone 4° à droite)
    0