Problème avec .Row en VBA
Résolu
gaignon
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
gaignon Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
gaignon Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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