Macro condition si cellule vide alors faire ceci, sinon aller ligne suivante

Remi_54500

XLDnaute Nouveau
Bonjour,

Voila j'ai commencé une macro mais je suis bloqué.

Ce que je voudrais c'est :
Si ma cellule A72 est vide, alors aller à la cellule N+1
Si ma cellule n'est pas vide, alors excuter la formule "IF(RC[-11]=""ITEM"",""Unit price"",VLOOKUP(RC[-3],[Electrical_codebook_SES.xlsx]Codebook!C1:C6,6,FALSE))"


Savez vous ce que je dois rajouter ?

Je suppose que je dois ajouter du VBA juste en dessous du "10" mais je ne sais pas quoi.

Ma macro :

Sub test()
'
' test Macro
'
i = 0
'
For i = 72 To 12000

Sheets("BOM").Select
'
Cells(i, 1).Select
If ActiveCell = "" Then GoTo 10
'
Cells(i, 12).Select
ActiveCell.FormulaR1C1 = "=IF(RC[-11]=""ITEM"",""Unit price"",VLOOKUP(RC[-3],[Electrical_codebook_SES.xlsx]Codebook!C1:C6,6,FALSE))"

Next i

10



End Sub

Merci d'avance pour votre aide.
 

camarchepas

XLDnaute Barbatruc
Re : Macro condition si cellule vide alors faire ceci, sinon aller ligne suivante

Bonjour Rémy,

Comme ceci peut être, sans fichier les tests sont moins formels

Code:
Sub test()
 '
 ' test Macro
 '
 Dim I As Long
 
  With Sheets("BOM")
    .Activate
    For I = 72 To 12000
     If .Cells(I, 1) <> "" Then
       .Cells(I, 12).FormulaR1C1 = "=IF(RC[-11]=""ITEM"",""Unit price"",VLOOKUP(RC[-3],[Electrical_codebook_SES.xlsx]Codebook!C1:C6,6,FALSE))"
     End If
    Next I
  End With
End Sub
 

Remi_54500

XLDnaute Nouveau
Re : Macro condition si cellule vide alors faire ceci, sinon aller ligne suivante

Bonjour, super "camarchepas", ca marche :)

Par contre comment faire pour la même chose mais dans la colonne d'après ?
Du style
Si ma cellule A72 est vide, alors aller à la cellule N+1
Si ma cellule n'est pas vide, alors excuter la formule "IF(RC[-11]=""ITEM"",""Unit price"",VLOOKUP(RC[-3],[Electrical_codebook_SES.xlsx]Codebook!C1:C6,6,FALSE))" dans la colonne L et la formule ..... (pas encore defini) dans la colonne M ?
 

camarchepas

XLDnaute Barbatruc
Re : Macro condition si cellule vide alors faire ceci, sinon aller ligne suivante

Si bien compris

Code:
Sub test()
  '
 ' test Macro
 '
 Dim I As Long
  
   With Sheets("BOM")
     .Activate
     For I = 72 To 12000
      If .Cells(I, 1) <> "" Then
        .Cells(I, 12).FormulaR1C1 = "=IF(RC[-11]=""ITEM"",""Unit price"",VLOOKUP(RC[-3],[Electrical_codebook_SES.xlsx]Codebook!C1:C6,6,FALSE))"
        .Cells(I, 13).FormulaR1C1 = "Formule A définir"
      End If
     Next I
   End With
 End Sub
 

Acturis

XLDnaute Nouveau
Bonjour,
Je me permet de revenir sur ce post.
La macro fonctionne chez moi et me permet bien de faire ce que je veux. Cependant, elle met énormément de temps à s’exécuter alors que celle ci ne s'applique que sur 500 cellules d'une colonne dans mon fichier.
Est-ce normal ?
Le code utilisé est le même que celui proposé par camarchepas.

Merci d'avance.
 

Discussions similaires