EXTRAIRE dans 2 colonnes des lignes [Résolu]

Signaler
Messages postés
127
Date d'inscription
dimanche 29 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2019
-
geoffroy1958
Messages postés
127
Date d'inscription
dimanche 29 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2019
-
Bonjour,
Comment faire en vb dans Excel pour extraire des lignes en recherchant sur 2 colonnes?


En colonne C « N°Semaine/Lot » les 2 premiers chiffres correspondent à la semaine de fabrication.

Je voudrais extraire les Noix et ROSETTE ( colonneB"Produit") ayant 7 semaines de moins que la semaine actuelle :Nous sommes en sem 24
Donc 24-7=17 donc extraire toutes les semaines commençant par 17 et inférieur de la colonneC"N°Semaine/Lot"

Et aussi extraire les Bœufs(colonne B "Produit") ayant 11 semaines de moins que la semaine actuelle :
Donc 24-11=13 donc tous les bœufs commençant par 13 et inférieur toujours en colonne C"semaine"


Merci

Cordialement
Geoffroy

1 réponse

Messages postés
6480
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 janvier 2020
439
Bonjour,

En vba on boucle sur la colonne C et l'on met les résultats colonne F (a adapter):

Option Explicit
Private Sub CommandButton1_Click()
For_X_to_Next_Ligne
End Sub
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Dim ns As Integer 'numero semaine
Dim nombre As Integer '2 caracteres à gauche
Dim result As Integer
ns = NoSem(Now)

    Set FL1 = Worksheets("Feuil1") 'adapter nom feuille
    NoCol = 3 'lecture de la colonne C
    For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4)
        Var = FL1.Cells(NoLig, NoCol)
      result = ns - 7
        nombre = Left(Var, 2)
        If nombre <= result Then
       If FL1.Cells(NoLig, NoCol - 1) = "Rosette" Or FL1.Cells(NoLig, NoCol - 1) = "Noix" Then
        FL1.Cells(NoLig, NoCol + 3) = "extraction 7" 'adapter colonne résultat
        End If
        End If
        result = ns - 11
        If nombre <= result Then
        If FL1.Cells(NoLig, NoCol - 1) = "Boeuf" Then
        FL1.Cells(NoLig, NoCol + 3) = "extraction 11" 'adapter colonne résultat
        End If
        End If
    Next
    Set FL1 = Nothing
End Sub
Public Function NoSem(UneDate As Date) As Integer
   On Error Resume Next
   NoSem = CInt(Format(UneDate, "ww", vbMonday, vbFirstFourDays))
   'Verification du bug, reconnu par MS, sur Oleaut32.dll
   If NoSem > 52 Then
      If CInt(Format(UneDate + 7, "ww", vbMonday, vbFirstFourDays)) = 2 Then NoSem = 1
   End If
End Function


Voilà

geoffroy1958
Messages postés
127
Date d'inscription
dimanche 29 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2019

Merci,
oui c'est simple mais faut connaitre (quoique, si j'avais un peu réfléchi, ça semble tellement logique).

Oui seulement le boeuf= 11semaines mais apparemment ils ont encore changé dans leurs temps de séchage.
c'est pour cette raison que je voulais dans la UserForme un bouton Pour saisir le nouveau temps de séchage.

en tout cas ça fonctionne bien, pour le moment pas de plantage ;)

j'ajouterais un nouveau sujet pour les 'dim' à 3 dimensions, là encore je mis perds un peu ... :)

@+
cs_Le Pivert
Messages postés
6480
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 janvier 2020
439
voilà le classeur avec une TextBox pour entrez le nombre de semaines de séchage pour le BŒUF :

https://www.cjoint.com/c/IFurbKvmL2Q

@+ Le Pivert
geoffroy1958
Messages postés
127
Date d'inscription
dimanche 29 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2019

Bonjour,
OK
Donc ça peut aussi servir pour les autres, si j'enlève cette ligne 'If nom = "BŒUF" Then' ou la remplacer par (???) ?
merci
@+ Geoffroy
cs_Le Pivert
Messages postés
6480
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 janvier 2020
439
Dans ce cas il n'y a qu'un élément à traité, le If Then Else End If suffit. pour plusieurs élément se servir du Select case

https://excel-malin.com/tutoriels/vba-tutoriels/vba-select-case-mode-d-emploi/

Voilà

@+ le Pivert
geoffroy1958
Messages postés
127
Date d'inscription
dimanche 29 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2019

Excellent !

Merci
@+