Sélection de ligne avec condition
Résolu
ClaraBRND
-
ClaraBRND -
ClaraBRND -
Bonjour,
Je souhaite rentrer des données sur une ligne précise.
Concrètement il s'agit de faire une demande de gabarit.
Quand on clique sur 'valider la demande', les informations s'ajoutent sur la ligne du tableau correspondant au gabarit choisit.
Mon code doit donc chercher dans la colonne 'gabarit' la ligne ou se trouve le nom du gabarit sélectionné dans la demande et ajouter les information dans les colonnes de cette même ligne. Le beug se trouve à partir la ligne Range(Ligne, 4) = CaseQuantité.Value (ajouter l'information dans la colonne D de la ligne du gabarit sélectionné)
Mon code est le suivant :
EDIT : Ajout des balises de code
Vous me seriez d'une grande aide !! Merci
Je souhaite rentrer des données sur une ligne précise.
Concrètement il s'agit de faire une demande de gabarit.
Quand on clique sur 'valider la demande', les informations s'ajoutent sur la ligne du tableau correspondant au gabarit choisit.
Mon code doit donc chercher dans la colonne 'gabarit' la ligne ou se trouve le nom du gabarit sélectionné dans la demande et ajouter les information dans les colonnes de cette même ligne. Le beug se trouve à partir la ligne Range(Ligne, 4) = CaseQuantité.Value (ajouter l'information dans la colonne D de la ligne du gabarit sélectionné)
Mon code est le suivant :
Dim Rw As Range Dim Ligne As Long For Each Cell In Sheets(Produit).Range("B5:B100") If Cell.Value = CaseGabarit.Value Then Ligne = Rw.Row Range(Ligne, 4) = CaseQuantité.Value Range(Ligne, 5) = CaseBesoin.Value Range(Ligne, 7) = CasePrio.Value Range(Ligne, 8) = CasePole.Value Range(Ligne, 9) = CaseDemandeur.Value Range(Ligne, 10) = CaseDate.Value Range(Ligne, 11) = CaseDélai.Value If CheckBoxUsure.Value = True Then Range(Ligne, 13) = CheckBoxUsure.Caption End If If CheckBoxCasse.Value = True Then Range(Ligne, 13) = CheckBoxCasse.Caption End If If CheckBoxQuantitéSup.Value = True Then Range(Ligne, 13) = CheckBoxQuantitéSup.Caption End If If CheckBoxNonConforme.Value = True Then Range(Ligne, 13) = CheckBoxNonConforme.Caption End If If CheckBoxEvolution.Value = True Then Range(Ligne, 13) = CheckBoxEvolution.Caption End If If CheckBoxAutreRaison = True Then Range(Ligne, 13) = CaseAutreRaison.Value End If Next
EDIT : Ajout des balises de code
Vous me seriez d'une grande aide !! Merci
A voir également:
- Sélection de ligne avec condition
- Partage de photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Aller à la ligne excel - Guide
8 réponses
Aucun souci avec ce code
Dim Rw As Range Dim Ligne As Long For Each C In Sheets(Produit).Range("B5:B100") If C.Value = CaseGabarit.Value Then Ligne = C.Row Cells(Ligne, 4) = CaseQuantité.Value Cells(Ligne, 5) = CaseBesoin.Value Cells(Ligne, 7) = CasePrio.Value Cells(Ligne, 8) = CasePole.Value Cells(Ligne, 9) = CaseDemandeur.Value Cells(Ligne, 10) = CaseDate.Value Cells(Ligne, 11) = CaseDélai.Value If CheckBoxUsure.Value = True Then Cells(Ligne, 13) = CheckBoxUsure.Caption End If If CheckBoxCasse.Value = True Then Cells(Ligne, 13) = CheckBoxCasse.Caption End If If CheckBoxQuantitéSup.Value = True Then Cells(Ligne, 13) = CheckBoxQuantitéSup.Caption End If If CheckBoxNonConforme.Value = True Then Cells(Ligne, 13) = CheckBoxNonConforme.Caption End If If CheckBoxEvolution.Value = True Then Cells(Ligne, 13) = CheckBoxEvolution.Caption End If If CheckBoxAutreRaison = True Then Cells(Ligne, 13) = CaseAutreRaison.Value End If End If Next
Bonjour,
Ton souci.. c'est que tu as utilisé Range au lieu de Cells
Par contre, dans ta boucle, éviter d'utiliser le mot "Cell" qui est proche de celui utilisé par Excel (Cells )pour cibler une cellule
Remplace "Cell" par C dans la boucle
Ton souci.. c'est que tu as utilisé Range au lieu de Cells
Cells(Ligne, 4)
Par contre, dans ta boucle, éviter d'utiliser le mot "Cell" qui est proche de celui utilisé par Excel (Cells )pour cibler une cellule
Remplace "Cell" par C dans la boucle
For Each C In Sheets(Produit).Range("B5:B100") If C.Value = CaseGabarit.Value Then Ligne = Rw.Row
Merci pour votre réponse !! Malheureusement, Excel me met toujours la ligne "cells(Ligne, 4) = CaseQuantité.Value" en erreur ...
Puis-je vous joindre mon fichier ? (si oui comment, je n'ai pas l'habitude ....)
Puis-je vous joindre mon fichier ? (si oui comment, je n'ai pas l'habitude ....)
https://www.cjoint.com/c/JGukvKr8N7V
Voici le fichier, il s'agit de la macro associée à l'Userform DemandeDeGabarit
Merci
Voici le fichier, il s'agit de la macro associée à l'Userform DemandeDeGabarit
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim Rw As Range Dim Ligne As Long For Each C In Sheets(Produit).Range("B5:B100") If C.Value = CaseGabarit.Value Then Ligne = C.Row Range(Ligne, 4) = CaseQuantité.Value Range(Ligne, 5) = CaseBesoin.Value Range(Ligne, 7) = CasePrio.Value Range(Ligne, 8) = CasePole.Value Range(Ligne, 9) = CaseDemandeur.Value Range(Ligne, 10) = CaseDate.Value Range(Ligne, 11) = CaseDélai.Value If CheckBoxUsure.Value = True Then Range(Ligne, 13) = CheckBoxUsure.Caption End If If CheckBoxCasse.Value = True Then Range(Ligne, 13) = CheckBoxCasse.Caption End If If CheckBoxQuantitéSup.Value = True Then Range(Ligne, 13) = CheckBoxQuantitéSup.Caption End If If CheckBoxNonConforme.Value = True Then Range(Ligne, 13) = CheckBoxNonConforme.Caption End If If CheckBoxEvolution.Value = True Then Range(Ligne, 13) = CheckBoxEvolution.Caption End If If CheckBoxAutreRaison = True Then Range(Ligne, 13) = CaseAutreRaison.Value End If End if Next
Jordan,
La premiere ligne avec Range :
Range(Ligne, 4) = CaseQuantité.Value
reste en erreur, je pensais qu'il fallait mett cells?
Quand je modifie tout en cells c'est la 3eme ligne :
Cells(Ligne, 7) = CasePrio.Value
qui se met en erreur, je ne comprend pas pourquoi
Vous n'utilisez pas le Rw après l'avoir mit en range, est-il utile de le mettre du coupe (1ere ligne)
La premiere ligne avec Range :
Range(Ligne, 4) = CaseQuantité.Value
reste en erreur, je pensais qu'il fallait mett cells?
Quand je modifie tout en cells c'est la 3eme ligne :
Cells(Ligne, 7) = CasePrio.Value
qui se met en erreur, je ne comprend pas pourquoi
Vous n'utilisez pas le Rw après l'avoir mit en range, est-il utile de le mettre du coupe (1ere ligne)