VBA: Macro avec LOOP et IF fonction

chacal33

XLDnaute Junior
Bonjour à tous et à toutes,

J'essaie de créer une macro avec un loop et une fonction if.
Je pense vraiment que je suis mal parti, et du coup, j'ai du mal à repartir sur de bonnes bases.

Voici le code:
Code:
Sub Macro1()

Dim i As Integer
For i = 1 To 5500

If Sheets("BUDGET POSE MARCHE").Range(Cells(11, i)).Value = "" And Sheets("BUDGET POSE MARCHE").Range(Cells(4, i)).Value <> "Tâcherons" And (Sheets("BILAN").Range("A30").Value <> "Tâcherons" Or Sheets("BILAN").Range("A31").Value <> "Tâcherons" Or Sheets("BILAN").Range("A32").Value <> "Tâcherons" Or Sheets("BILAN").Range("A33").Value <> "Tâcherons" Or Sheets("BILAN").Range("A34").Value <> "Tâcherons" Or Sheets("BILAN").Range("A35").Value <> "Tâcherons") Then Sheets("BILAN").Select
    Range("B30").Select

Next i

End Sub

Merci de vos retours.

Matthieu
 

Misange

XLDnaute Barbatruc
Re : VBA: Macro avec LOOP et IF fonction

Bonjour

Si au lieu de nous dire que ça ne marche pas (on s'en doute sinon tu ne serais pas là !) tu nous disais ce que tu souhaites et que tu fournissais un classeur exemple pour que l'on puisse tester, les réponses seraient plus productives...
 

chacal33

XLDnaute Junior
Re : VBA: Macro avec LOOP et IF fonction

Ce que je souhaite faire:
Si A2 <> "A" alors ligne suivante
Si A2 = "A" et B2 <> "2" alors ligne suivante
Si A2 = "A" et B2 = "2" alors Msgbox

Je joins un fichier, en espérant avoir été plus clair.
 

Pièces jointes

  • Classeur1.xlsm
    13.4 KB · Affichages: 41
  • Classeur1.xlsm
    13.4 KB · Affichages: 53
  • Classeur1.xlsm
    13.4 KB · Affichages: 52

Misange

XLDnaute Barbatruc
Re : VBA: Macro avec LOOP et IF fonction

Bonjour
les données de ton classeur exemple ne correspondent pas à ta tentative de macro...
ton fichier joint ne sert donc à rien


donc en partant de cela (ce sera à toi d'ajuster)
Code:
Si A2 <> "A" alors ligne suivante
Si A2 = "A" et B2 <> "2" alors ligne suivante
Si A2 = "A" et B2 = "2" alors Msgbox

Code:
for 2=1 to 10
if range("A" & i) = 2 then
   if range("B" & i) = 2 then msgbox ("ton message")
end if
next i

devrait suffire
attention si tu mets 2 entre guillemets excel le prend comme du texte pas comme un nombre.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA: Macro avec LOOP et IF fonction

Bonsoir Chacal, Misange, bonsoir le forum,

Peut-être comme ça :
Code:
Sub Macro2()
Dim O As Object 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim CEL As Range 'déclare la variable CEL (CELlule)

Set O = Sheets("BUDGET POSE MARCHE") 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
Set PL = O.Range("A2:A" & DL) 'définit la plage PL
For Each CEL In PL 'boucle sur toutes les cellules CEL de la plage PL
    'si la cellule vaut "A" et la cellule décalée d'une colonne à droite (convertie en texte) vaut  vaut "2", message
    If CEL.Value = "A" And CStr(CEL.Offset(0, 1).Value) = "2" Then MsgBox "Conditions remplies en ligne " & CEL.Row & " !"
Next CEL 'prochaine cellule de la boucle
End Sub

[Édition]
Tiens on s'est croisé avec la Misange...
 

Discussions similaires

Réponses
0
Affichages
157

Statistiques des forums

Discussions
312 345
Messages
2 087 477
Membres
103 553
dernier inscrit
jhnm