EXTRAIRE dans 2 colonnes des lignes
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
-
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à
-
-
-
-
-
Bonsoir,
et merci beaucoup pour ton aide mais j'ai un petit souci avec ta macro.
ci-joint le fichier
https://www.cjoint.com/c/IFnrj5zhMZs
j'ai ajouté une petite explication en espérant d'être clair
@+
Geoffroy
-
