Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Ajout valeur si celulle voisine saisie (sur une plage)

Fredox

XLDnaute Occasionnel
Bonjour,

Sur une plage ("A1:A200"), j'aimerais ajouter en ("B1:B200") un "x" si la cellule A comprend une saisie.

Je pense qu'il faut trouver la derniere ligne contenant un contenu via
VB:
derniere_ligne = Feuille.Cells(Rows.Count, 1).End(xlUp).Row

Ensuite, comment ajouter mon "x" ?


Merci
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Peut-être ceci !
Bonne journée !
VB:
Option Explicit

Sub test()
Dim derniere_ligne As Long, i As Long
derniere_ligne = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row ' feuille 1
For i = derniere_ligne To 1 Step -1 ' jusquà la 1ere ligne
If Cells(i, 1) <> "" Then Cells(i, 2) = "X"
Next i
End Sub
 

bbb38

XLDnaute Accro
Bonjour Fredox, le forum
A tester :
VB:
For i = 1 To 200
    If Cells(1, 1) <>"" Then Cells(1, 2 = "x")
Next i
Si tu utilise "With", n'oublies pas de mettre un point devant Cells.
Cordialement,
Bernard
 

JBARBE

XLDnaute Barbatruc
Re,
Ajouter ces 2 lignes qui permettent de figer l'écran !
Bonne Journée !
VB:
Option Explicit

Sub test()
Dim derniere_ligne As Long, i As Long
Application.ScreenUpdating = False
derniere_ligne = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row ' feuille 1
For i = derniere_ligne To 1 Step -1 ' jusquà la 1ere ligne
If Cells(i, 1) <> "" Then Cells(i, 2) = "X"
Next i
Application.ScreenUpdating = True
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Autre possibilité (pour une croix automatique)
A mettre dans le code de la feuille concernée
VB:
Private Sub Worksheet_Change(ByVal T As Range)
If Not Intersect(T, [A1:A200]) Is Nothing Then
If Len(T) > 0 Then T.Offset(, 1).Value = "X"
End If
End Sub
 

Discussions similaires

Réponses
2
Affichages
154
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…