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
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
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:
- Vb - excell - remplissage automatique de cell
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Vb - Télécharger - Langages
- Logiciel de sauvegarde automatique gratuit - Guide
- Message automatique thunderbird - Guide
- Vb cable - Télécharger - Audio & Musique
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?
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?
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
23 nov. 2007 à 15:32
Bonjour stephane,
Exemple de code à écrire dans une macro ou une procédure événementielle :
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.
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.
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?
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?
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
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.
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.