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

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 :


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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…