Problème range et vlookup

Résolu
toinou2121 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde, j'ai des problème lors de l'utilisation de range et de vlookup, je pense pourtant que les syntaxes utilisés sont bonne ^^
Pour information j'ai un bon niveau en vba et je sais on peut se dire pourquoi avoir des problèmes avec les bases de bases de la programmation
J'utilise 72 range dans mon fichier seulement il y en a 2 qui bug et je n'ai aucune idée pourquoi.
Mon vlookup lui aussi marche une fois sur 2 ...
Je vous montre mes parties de codes avec la ligne et l'erreur affiché si vous pouvez m'aider sa serait un reve ..

1) For m = cole_commandes To cole_fin Step 1
For h = 1 To nb_val_select
If tableau(h) = Cells(lige_Référence, m).Value Then
v = h
Exit For
End If
Next h
If Cells(lige_quantité, m).Value > stkd(v) Then
Cells(lige_besoin_net, m).Value = Cells(lige_quantité, m).Value - stkd(v)
stkd(v) = 0
Else
Cells(lige_besoin_net, m).Value = 0
stkd(v) = stkd(v) - Cells(lige_quantité, m).Value
End If
Next m
End If

If cole_fin > cole_commandes Then
For h = lige_deb To fintabe
For g = cole_commandes To cole_fin


Worksheets(Onglet_etude).Cells(h, g).Value = Application.VLookup(Worksheets(Onglet_etude).Cells(h, 1).Value, _
Range(Worksheets(Onglet_NOMENCLATURE).Cells(2, coln_nom), _
Worksheets(Onglet_NOMENCLATURE).Cells(fintabn + 1, coln_ratio)), 6, False) * Cells(lige_besoin_net, g)


Bug a su la ligne vlookup erreur 2042 provenant un Vlookup lui même, les cellules sont bien trouvés.




If cole_commandes + 1 < cole_fin Then

Worksheets(Onglet_etude).Range(Cells(1, cole_commandes + 1), Cells(fintabe, cole_fin)).Select

Selection.Sort Key1:=Rows(Lige_date), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If


erreur sur le range.select, objet ou application non défini

Merci d'avance

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour,

comme on a pas la déclaration des variables... :-/
Onglet_etude, Onglet_NOMENCLATURE.... Variables ou nom de feuilles ???
comme tu te déclares bon en VBA:
tu dois savoir que s'il s'agit des noms de feuilles, il faut les indiquerentre gyuillemets

Pourquoi utiliser Vlookup alors qu'il existe en VBA la fonction "Find" destinées au recherches et beaucoup plus puissantes ?

en VBA on évite au maximum les Sélect très lents et mangeurs de mémoire, et on évite aussi de marquer les valeurs par défaut facultatives, bref de pomper sans élaguer l'enregistreur de macros...

Un débutant en VBA
0
toinou2121
 
Les onglets sont des variables initialisées pour que tu n'ai qu'a changer une seule valeur pour changer le nom de la feuille et que toutes tes macros marchent toujours ...
(onglet_nomenclature = "NOMENCLATURES")

J'utilise vlookup car c'est la fonction la mieux adapté et me suffit largement dans ce cadre car je n'ai pas besoin de find (pourquoi utiliser une pelleteuse quand on peut utiliser une pelle ??? )

De plus mon très cher j'ai rajouté le select car il y a un bout de code entre les 2 que je ne vous ai pas mis d'ou l'intérêt du select ...

Enfin bref si tu me réponds pour monter sur tes grands chevaux je ne vois pas trop l'intérêt après si tu as qqc à m'apporter je suis preneur ...

Je disais juste que je suis loin d'être débutant et que justement tu pouvais tépargner de donner des solutions bidons comme tu viens le faire pour résoudre un problème beaucoup plus complexe !!

merci de ta réponse très pertinente

bonne soirée
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
De m^me, petit génie modeste
0