Problème avec .Row en VBA
Résolu
gaignon
Messages postés
6
Statut
Membre
-
gaignon Messages postés 6 Statut Membre -
gaignon Messages postés 6 Statut Membre -
Bonjour,
J'ai un problème avec une fonction que j'ai déjà utilisé
Mon code fonctionne jusqu'au moment ou j'appelle cel.Row
Si vous avez besoin d'info sur le context n'hésitez pas
Sub TRS()
Emplacement = 3 'numéro de ligne sur laquel le premier résultat sera écrit
For Emplacement = 3 To 9
'Valeur est la valeur max de la colonne U
Valeur = Application.WorksheetFunction.Max(Range("B58:B64"))
'Sélectionne la cellule avec la valeur Valeur
With Range("B58:B64")
Set cel = .Find(Valeur)
End With
'Retrouve la catégorie de TRS
Titre = Cells(cel.Row, 1)
'Affiche le résultat colonnes O et P
Cells(Emplacement, 15).Select
ActiveCell.FormulaR1C1 = Titre
Cells(Emplacement, 16).Select
ActiveCell.FormulaR1C1 = Valeur
'Supprime la valeur de la machine sélectionnée pour qu'elle ne rentre plus dans le calcul
Cells(cel.Row, 2).Select
ActiveCell.FormulaR1C1 = ""
Next
End Sub
Merci
J'ai un problème avec une fonction que j'ai déjà utilisé
Mon code fonctionne jusqu'au moment ou j'appelle cel.Row
Si vous avez besoin d'info sur le context n'hésitez pas
Sub TRS()
Emplacement = 3 'numéro de ligne sur laquel le premier résultat sera écrit
For Emplacement = 3 To 9
'Valeur est la valeur max de la colonne U
Valeur = Application.WorksheetFunction.Max(Range("B58:B64"))
'Sélectionne la cellule avec la valeur Valeur
With Range("B58:B64")
Set cel = .Find(Valeur)
End With
'Retrouve la catégorie de TRS
Titre = Cells(cel.Row, 1)
'Affiche le résultat colonnes O et P
Cells(Emplacement, 15).Select
ActiveCell.FormulaR1C1 = Titre
Cells(Emplacement, 16).Select
ActiveCell.FormulaR1C1 = Valeur
'Supprime la valeur de la machine sélectionnée pour qu'elle ne rentre plus dans le calcul
Cells(cel.Row, 2).Select
ActiveCell.FormulaR1C1 = ""
Next
End Sub
Merci
A voir également:
- Fonction row vba
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Fonction remplacer sur word - Guide
2 réponses
Bonjour gaignon,
Ce sont des formules en colonne "B" ?
Edit :
C'est cette ligne qui pose problème ? Cells(cel.Row, 2).Select
Si oui, quel erreur ??
Ce sont des formules en colonne "B" ?
Edit :
C'est cette ligne qui pose problème ? Cells(cel.Row, 2).Select
Si oui, quel erreur ??
Bonjour
1/ toujours déclarer les variables et utiliser "option explicit"
2/ pourquoi chercher une cellule puis une fois trouvée, chercher sa ligne alors qu'on peut le faire directement ?
3/ Pourquoi utiliser select-sélection et formula R1C1 ?
1/ toujours déclarer les variables et utiliser "option explicit"
2/ pourquoi chercher une cellule puis une fois trouvée, chercher sa ligne alors qu'on peut le faire directement ?
3/ Pourquoi utiliser select-sélection et formula R1C1 ?
Option Explicit
Sub xxx()
Dim Emplacement As Byte, Valeur As Double, Lig As Byte, Titre As String
Application.ScreenUpdating = False
'Emplacement = 3 'numéro de ligne sur laquel le premier résultat sera écrit
For Emplacement = 3 To 9
'Valeur est la valeur max de la colonne U
Valeur = Application.Max(Range("B58:B64"))
'Sélectionne la cellule avec la valeur Valeur
With Range("B58:B64")
Lig = .Find(What:=Valeur).Row
End With
'Retrouve la catégorie de TRS
Titre = Cells(Lig, 1)
'Affiche le résultat colonnes O et P
Cells(Emplacement, 15) = Titre
Cells(Emplacement, 16) = Valeur
'Supprime la valeur de la machine sélectionnée pour qu'elle ne rentre plus dans le calcul
Cells(Lig, 2) = ""
Next
End Sub
Bon, on va feinter
essaies
valeur = Application.Max(Range("B58:B64"))
lig = Application.Match(valeur, Range("B58:B64"), 0) + 57
tu dis...
si ça ne marche pas, envoie ton classeur
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
essaies
valeur = Application.Max(Range("B58:B64"))
lig = Application.Match(valeur, Range("B58:B64"), 0) + 57
tu dis...
si ça ne marche pas, envoie ton classeur
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Je pense en effet que c'est Cells(cel.Row, 2).Select qui pose problème, puis Cells(cel.Row, 2).Select
L'erreur annoncée est : variable objet ou variable de bloc With non définie