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
A voir également:

5 réponses

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
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
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
le père
 
Bonjour,
ActiveSheet.Cells(i, j+1).Value = "b"</code>
                
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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