Vb - excell - remplissage automatique de cell

Résolu
darkkjarod -  
Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je voudrais avoir code qui me permet de remplir une cellule d'une colonne par une valeur B si la cellule de la colonne precedente est rempli.

Je voudrais localiser la colonne a remplir en fonction d'un libelle. exemple "equipe".

Donc si colonne est gauche de la colonne "equipe" est non vide alors B.

merci pour votre aide,

stephane
Configuration: Windows Vista
Internet Explorer 7.0

5 réponses

  1. darkkjarod
     
    Bonjour,

    merci pour ta reponse. C est en fait un peu plus complique car A et D dans ton exemple " bougent" donc je voudrais le faire en disant pour la colonne avec l'intutile "XY" si la valeur a gauche est remplie alors mettre B. tu vois la difference?
    1
  2. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    Bonjour stephane,

    Exemple de code à écrire dans une macro ou une procédure événementielle :

    With ActiveCell.EntireRow
        If .Range("A1") <> "" Then .Range("D1") = "31"
    End With


    Ce programme teste si la cellule A1 de la ligne sélectionnée contient une valeur, et si oui, remplit la cellule D1 avec la valeur 31.
    Tu peux bien sûr modifier ces adresses et valeurs à ta convenance !

    Espérant avoir répondu.

    Cordialement.
    0
  3. darkkjarod
     
    j'ai ecris le debut:

    Sub formatIASpurpose()

    deb = 14 'Debut des données à traiter
    Findata = Cells.Find("*", Range("A1"), xlFormulas, , xlByRows, xlPrevious).Row

    FindataCol = Cells.Find("*", Range("A3"), xlFormulas, , xlByRows, xlPrevious).Column

    For j = 1 To FindataCol

    If Cells(3, j).Value = "IAS Purpose" Then

    Range(Cells(deb, j), Cells(Findata, j)).Select
    Selection.TextToColumns Destination:=Cells(deb, j), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 2), TrailingMinusNumbers:=True

    For i = deb To Findata

    x = Range(Cells(i, j), Cells(i, j)).Value

    If (ActiveSheet.Range(Cells(i, j), Cells(i, j)).Value) <> "" Then
    ActiveSheet.Range(Cells(i, j), Cells(i, j)).Value = "b"
    End If
    Next i
    Else
    End If
    Next j
    End Sub

    Mon probleme c est que si je fait ca:
    ActiveSheet.Range(Cells(i, j), Cells(i, j)).Value = "b"

    je l fais sur la valeur presente. comment modifier ActiveSheet.Range(Cells(i, j), Cells(i, j)) pour qu'il mette le b dans la colone de droite?
    0
  4. le père
     
    Bonjour,
    ActiveSheet.Cells(i, j+1).Value = "b"</code>
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    Rebonjour,

    Je ne comprends pas pourquoi "les cellules bougent". Les références A1 & D1 correspondent aux colonnes A & D, le 1 faisant référence à la ligne en cours. Par contre, comme l"analyse des cellules se fait dans une boucle, il est effectivement préférable de désigner les cellules par Cells au lieu de Range. Quant au référencement de la cellule de droite, le père a, je pense, répondu à la question.

    Cordialement.
    0