Vb - excell - remplissage automatique de cell

Résolu/Fermé
darkkjarod - 23 nov. 2007 à 14:29
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 - 23 nov. 2007 à 16:18
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

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 mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
23 nov. 2007 à 15:32
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
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
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 mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
23 nov. 2007 à 16:18
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