Bug Erreur définie par l'application ou l'objet

Fermé
designman Messages postés 11 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 26 juin 2022 - Modifié le 23 juin 2022 à 22:41
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 26 juin 2022 à 16:34
Bonjour,
Je me remets sur VBA après quelques mois de pause et je m'arrache les cheveux sur un Bug Erreur définie par l'application ou l'objet.



Sub count_Process()

Dim Tier As Single
Dim tab_Tiers As Variant
Dim tab_resultats As Variant
Dim tab_nom As Variant

Dim v As Single

Tier = Range("B6")
tab_Tiers = Range(Cells(9, 2), Cells(9 + Tier, 5))
ReDim tab_resultats(2, Tier) As Variant


v = Sheets("Processing").Range("A2").End(xlDown).Row '- 1
ReDim tab_nom(v, 12) As Variant

'Tab_nom est une plage de données de V lignes et 12 colonnes


tab_nom = Sheets("Processing").Range(Cells(2, 2), Cells(v - 1, 13))


End Sub


ça bug justement à l'enregistrement des données tab_nom =

Si je rajoute une ligne pour ouvrir l'onglet "Processing" avant, ça marche comme prévu une seule fois puis ça me dit la methode Select a échoué.

Sheets("Processing").Select
tab_nom = Sheets("Processing").Range(Cells(2, 2), Cells(v - 1, 13))

Merci pour votre aide.

Configuration: Configuration: Configuration: Configuration: Windows / Chrome 102.0.0.0

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
24 juin 2022 à 09:00
Bonjour,

tab_Tiers, tab_resultats, tab_nom deviennent du type au moment de leur affectation s'ils sont declares Variant
Donc tab_Tiers, tab_nom deviennent de type Range pas des Tableaux
Pour le remplissage de tab_nom, j'ai souvent le soucis que vous avez, je change de facon
Pour tab_Tiers, pas de probleme mais saurais pas dire pourquoi

Sub count_Process()

    Dim Tier As Single
    Dim tab_Tiers As Variant
    Dim tab_resultats As Variant
    Dim tab_nom As Variant
    
    Dim v As Single
    
    Tier = Range("B6")
    tab_Tiers = Range(Cells(9, 2), Cells(9 + Tier, 5))
    
    v = Sheets("Processing").Range("A2").End(xlDown).Row '- 1
    tab_nom = Sheets("Processing").Range("B2:L" & v - 1)
End Sub
0
designman Messages postés 11 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 26 juin 2022
24 juin 2022 à 18:47
Merci beacoup f894009!!!!

Ta solution marche et c'est le principal. Tant que la variable est la ligne ça devrait marcher. Quid si c'est la colonne?
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
25 juin 2022 à 08:32
Bonjour,
Colonne
L=12, mettre M pour 13

Quid si c'est la colonne?
Et avec votre code, la colonne est bien ecrite en dur avec votre 13
tab_nom = Sheets("Processing").Range(Cells(2, 2), Cells(v - 1, 13)

Si colonne flottante, pas de probleme pour avoir la derniere colonne en lettre
0
designman Messages postés 11 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 26 juin 2022
26 juin 2022 à 12:21
Oui, sur cet exemple précis. Par contre quid de quand il faut une colonne variable, par ex:
tab_nom = Sheets("Processing").Range(Cells(2, 2), Cells(5, v) 
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > designman Messages postés 11 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 26 juin 2022
26 juin 2022 à 16:34
Re,
Oui, sur cet exemple précis.
Relisez la derniere ligne que j'ai ecrite, vous aurez la reponse
0