Compilation de "IN"

Bonjour,

Je coince un peu sur le développement de mon code...

Est-il possible de compiler 2 conditions "IN" dans un code ?

Mon code actuel:

Sub Connexion()

Dim Musine
Dim Mdate
Dim Ws1, Ws2 As Worksheet
Dim C
Dim D
Dim Li As Integer

Set Ws1 = Sheets("Suivi des gains"): Set Ws2 = Sheets("Connexion")
Ws1.[A19:E35].ClearContents
Musine = Ws1.[E10]
Mdate = Ws1.[E11]
Li = 19

For Each C In Ws2.Range("usines")
If UCase(C) = UCase([Musine]) And Ws2.Cells(C.Row, 6).Value = UCase("P") Then
    Ws1.Cells(Li, 1) = Ws2.Cells(C.Row, 4).Value
    Ws1.Cells(Li, 2) = Ws2.Cells(C.Row, 21).Value
    Ws1.Cells(Li, 3) = Ws2.Cells(C.Row, 2).Value
    Ws1.Cells(Li, 4) = Ws2.Cells(C.Row, 3).Value
    Ws1.Cells(Li, 5) = Ws2.Cells(C.Row, 7).Value
    Li = Li + 1
  End If
Next

For Each D In Ws2.Range("Année_Investissement")
  If UCase(D) = UCase([Mdate]) And Ws2.Cells(D.Row, 6).Value = UCase("P") Then
    Ws1.Cells(Li, 1) = Ws2.Cells(D.Row, 4).Value
    Ws1.Cells(Li, 2) = Ws2.Cells(D.Row, 21).Value
    Ws1.Cells(Li, 3) = Ws2.Cells(D.Row, 2).Value
    Ws1.Cells(Li, 4) = Ws2.Cells(D.Row, 3).Value
    Ws1.Cells(Li, 5) = Ws2.Cells(D.Row, 7).Value
    Li = Li + 1
  End If
Next

End Sub

Avec ce code quand la deuxième boucle est activé, la première n'est plus prise en compte. Il me faut compiler les 2 conditions.

Merci d'avance.

Bonjour,

trop paresseux pour créer un fichier exemple pour y placer ton code, je passe mon tour; en général on mets son code entre des

[]

[] comme ci dessous:

ici !!! voir le petit "code" en vert sur le haut 

et on l'indente

P.

merci je n'avais pas fait attention, je pense que c'est mieux maintenant

re,

ça irait comme ceci :

Sub Connexion()
Dim Musine
Dim Mdate
Dim Ws1, Ws2 As Worksheet
Dim C
Dim Li As Integer
Set Ws1 = Sheets("Suivi des gains"): Set Ws2 = Sheets("Connexion")
Ws1.[A19:E35].ClearContents
Musine = Ws1.[E10]
Mdate = Ws1.[E11]
Li = 19
For Each C In Ws2.Range("usines")
Debug.Print C, C.Offset(, 2), C.Offset(, 16), C.Row
  If UCase(C) = UCase([Musine]) And C.Offset(, 2).Value = UCase("P") And C.Offset(, 16) = Mdate Then
    Ws1.Cells(Li, 1) = Ws2.Cells(C.Row, 4).Value
    Ws1.Cells(Li, 2) = Ws2.Cells(C.Row, 21).Value
    Ws1.Cells(Li, 3) = Ws2.Cells(C.Row, 2).Value
    Ws1.Cells(Li, 4) = Ws2.Cells(C.Row, 3).Value
    Ws1.Cells(Li, 5) = Ws2.Cells(C.Row, 7).Value
    Li = Li + 1
  End If
Next
End Sub

P.

Merci pour votre retour.

Votre code ne fonctionne pas par contre.

Que signifie le code ci-dessous svp ?:

Debug.Print C, C.Offset(, 2), C.Offset(, 16), C.Row
marlene65 a écrit :

Merci pour votre retour.

Votre code ne fonctionne pas par contre.

Que signifie le code ci-dessous svp ?:

Debug.Print C, C.Offset(, 2), C.Offset(, 16), C.Row

avec CTRL-G dans l'éditeur VBA, on voit ce qui se passe en faisant aller le code au pas à pas avec F8 on voit ici le "C" et les valeurs des colonnes situées 2 et 16 plus loin

ici , ça fonctionne en changeant les dates (j'avais oublié de le signaler) par du numérique:

je mets un "1" dans une cellule, je copie (CTRL-C) , je sélectionne les dates de la colonne "année invest" et je fais collage spécial multiplication

tes dates sont en texte en fait

P.

Je ne vous suis pas.

J'ai modifier les cellules de date par du numérique.

re,

regarde ceci, ça fonctionne ici

P.

Effectivement ça fonctionne parfaitement ! j'ai effectué la modif sur mon fichier, c'est mieux .

Par contre pourquoi faut-il obligatoire passer par du collage en multiplication ? Pour ma culture perso svp et parce que du coup mon automatisation ne marche pas.. Vu que quand j'actualise mes données de la feuille connexion le collage est à re faire...

En tout cas merci de votre aide !!

marlene65 a écrit :

Par contre pourquoi faut-il obligatoire passer par du collage en multiplication ? Pour ma culture perso svp ?

En tout cas merci de votre aide !!

Parce que le fait de multiplier par UN transforme la cellule qui semble est une date est de l'alphanumérique/texte

(cadré à gauche fait déjà penser à de l'alphanumérique)

Rechercher des sujets similaires à "compilation"