XL 2013 vba

vinciHorus

XLDnaute Junior
bonjour

j'aimerai faire une action à répétition tant que le cellule qui suit contient une valeur

code

Sub rtrt()


If (Worksheets("Saisie").Range("C" & ActiveCell.Row).Value <> " " And Worksheets("Saisie").Range("E" & ActiveCell.Row).Value <> "-") Then
Worksheets("Saisie").Range("B" & ActiveCell.Row) = Application.WorksheetFunction.VLookup(Worksheets("Saisie").Range("E" & ActiveCell.Row).Value, Worksheets("BD_REG_NAT").Range("A:V"), 22, False)
End If


If (Worksheets("Saisie").Range("E" & ActiveCell.Row).Value <> " " And Worksheets("Saisie").Range("E" & ActiveCell.Row).Value <> "-") Then
Call Réf_noms_statuts(Cells(ActiveCell.Row, 5).Value)
End If



End Sub
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Voici un exemple de base :

VB:
Option Explicit

Sub Exemple()
Dim WS As Worksheet
Dim Cell As Range, Plage As Range

Set WS = ThisWorkbook.Worksheets("Saisie")
Set Plage = WS.Range("A2:A" & WS.Range("A1000").End(xlUp).Row)

    For Each Cell In Plage
    
        If Cell.Offset(0, 2) <> "" And Cell.Offset(0, 4) <> "" Then 'Si offset 2 "C" et offset 4 "E"
            'ton action...
        End If

    Next Cell

End Sub

@+Thierry
 

vinciHorus

XLDnaute Junior
Voici un exemple de base :

VB:
Option Explicit

Sub Exemple()
Dim WS As Worksheet
Dim Cell As Range, Plage As Range

Set WS = ThisWorkbook.Worksheets("Saisie")
Set Plage = WS.Range("A2:A" & WS.Range("A1000").End(xlUp).Row)

    For Each Cell In Plage
   
        If Cell.Offset(0, 2) <> "" And Cell.Offset(0, 4) <> "" Then 'Si offset 2 "C" et offset 4 "E"
            'ton action...
        End If

    Next Cell

End Sub

@+Thierry
J ai adapté mais cela n'effectue pas la tache normalement il devrait verifier si la cellule suivante est différent de "" et effectuer sa recherche
 

Pièces jointes

  • Capture4.JPG
    Capture4.JPG
    49.6 KB · Affichages: 5

_Thierry

XLDnaute Barbatruc
Repose en paix
Re VinciHorus
Je ne sais pas je n'ai pas ton tableau.

Mais la boucle For Each Cell in Plage, passera sur toutes les cellules définies dans la Plage. C'est c'est 100% sûr et certain...

Maintenant dans l'exemple je cible la Plage sur
WS.Range("A2:A" & WS.Range("A1000").End(xlUp).Row)
Si la Colonne "A" est vide à toi de savoir où tu as des données pour faire le Set de ta Plage de Cellules.

Tu peux aussi faire une Boucle For i = 1 to 1000 ou WS.Range("A2:A1000") (Sans essayer de trouver la dernière celulle remplie)

Ensuite à toi de jouer avec les OffSet pour cibler sur "C" ou sur "E" (que tu apprends dans un autre Fil de Discussion... ;)

@+Thierry
 

Statistiques des forums

Discussions
312 308
Messages
2 087 105
Membres
103 469
dernier inscrit
Thibz