Problème avec .Row en VBA
Résolu/Fermé
gaignon
Messages postés
6
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
15 janvier 2013
-
14 janv. 2013 à 14:15
gaignon Messages postés 6 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 15 janvier 2013 - 15 janv. 2013 à 12:12
gaignon Messages postés 6 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 15 janvier 2013 - 15 janv. 2013 à 12:12
A voir également:
- Fonction row vba
- Fonction si et - Guide
- Fonction somme excel - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Fonction filtre excel n'existe pas - Forum Excel
- Incompatibilité de type vba ✓ - Forum Programmation
2 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 14/01/2013 à 14:33
Modifié par Heliotte le 14/01/2013 à 14:33
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 ??
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 304
14 janv. 2013 à 15:13
14 janv. 2013 à 15:13
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
gaignon
Messages postés
6
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
15 janvier 2013
14 janv. 2013 à 15:56
14 janv. 2013 à 15:56
Merci, j'ai essayé avec les modifications et l'erreur est toujours la même: "variable objet ou variable de bloc With non définie"
J'avais fais une macro quasi identique à celle-ci et il n'y avait pas de problème
J'avais fais une macro quasi identique à celle-ci et il n'y avait pas de problème
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 304
14 janv. 2013 à 17:25
14 janv. 2013 à 17:25
curieux.... chez moi, ça marchait
utilises tu une autre fois dans ton projet la fonction "find" ?
utilises tu une autre fois dans ton projet la fonction "find" ?
gaignon
Messages postés
6
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
15 janvier 2013
15 janv. 2013 à 11:05
15 janv. 2013 à 11:05
je trouve aussi celà curieux. J'ai n'ai pas compris ce que tu me demande, je suis débutant en VBA
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 304
15 janv. 2013 à 11:57
15 janv. 2013 à 11:57
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
gaignon
Messages postés
6
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
15 janvier 2013
15 janv. 2013 à 12:04
15 janv. 2013 à 12:04
Merci, ça marche impécable.
Pourrais-tu m'expliquer la seconde ligne?
Pourrais-tu m'expliquer la seconde ligne?
14 janv. 2013 à 15:55
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