VBA: Macro avec LOOP et IF fonction

  • Initiateur de la discussion Initiateur de la discussion chacal33
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chacal33

Guest
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
 
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...
 
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

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.
 
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...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
305
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
880
Réponses
5
Affichages
671
Réponses
6
Affichages
701
Retour