La méthode range de l'objet worksheet a échoué

Bonsoir à tous, SVP pouvez-vous m'aider à résoudre cet erreur. A la deuxième ligne elle affiche "méthode range de l'objet worksheet a échoué". Voici le code que j'utilise:

With sheets ("Ma feuille")
                .Range("B" & Derligne) = CStr(Me.txt_nom_art)
                .Range("C" & Derligne) = CStr(Me.lb_info_suffixe)
                .Range("D" & Derligne) = CInt(Me.lb_info_pro_article)
                .Range("E" & Derligne) = CStr(Me.lb_info_suffixe & Me.lb_info_pro_article)
                .Range("F" & Derligne) = CStr(Me.list_cat)
                .Range("G" & Derligne) = CLng(Me.txt_pu_art)
                .Range("H" & Derligne) = CInt(Me.txt_vs_art)
                .Range("I" & Derligne) = CInt(Me.txt_vs_art)
End with

Merci en avance.

bonsoir,

probablement que ta variable Derligne n'est pas initialisée et est donc vide. Le vide sera interprété comme 0 et b0 n'est pas une reference de cellule qui existe.

Non je n'ai pas initialiser, voici commen j'ai fait:

Dim Derligne as long

Derligne = Sheets("Ma feuille").range("B999999").End(xlup).row +1

Bonjour Sambou et

Si le message d'erreur concerne "Range" je pense qu'il y a un autre souci que ces lignes

Je vous invite d'ailleurs à lire la charte du forum [A LIRE AVANT DE POSTER]

qui vous aidera dans vos demandes et réponses sur ce forum et notamment

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Merci de votre participation

bonjour,

Non je n'ai pas initialiser, voici commen j'ai fait:

Dim Derligne as long

Derligne = Sheets("Ma feuille").range("B999999").End(xlup).row +1

dans ce cas derligne contient au minimum la valeur 2, ce qui combiné avec B donne B2, une référence de cellule correcte. Il s'agit donc d'un autre problème : Vérifie si la feuille ou la cellule n'est pas protégée.

Bon à près midi, voici la totalité du code peut-être vous allez mieux comprendre :

Private Sub btn_ajouter_Click()
Dim Derligne As Long
        If Me.txt_nom_art <> "" And Me.txt_pu_art <> "" And Me.txt_vs_art <> "" Then
              Derligne = Sheets("Ma feuille").Range("B99999").End(xlUp).Row + 1
              Sheets("Ma feuille").Select
              With Sheets("Articles")
                .Range("B" & Derligne) = CStr(Me.txt_nom_art)
                .Range("C" & Derligne) = CStr(Me.lb_info_suffixe)
                .Range("D" & Derligne) = CInt(Me.lb_info_pro_article)
                .Range("E" & Derligne) = CStr(Me.lb_info_suffixe & Me.lb_info_pro_article)
                .Range("F" & Derligne) = CStr(Me.list_cat)
                .Range("G" & Derligne) = CLng(Me.txt_pu_art)
                .Range("H" & Derligne) = CInt(Me.txt_vs_art)
                .Range("I" & Derligne) = CInt(Me.txt_vs_art)
              End With
        Else
           MsgBox "Veuillez bien saisir les autres informations SVP", vbInformation, "Par le développeur"
        End If
End sub 

Merci encore à vous tous.

j'ai écrit With sheets("Articles") au lieu de With sheets("Ma feuille").

Sinon l'erreur n'est pas résolue.

Merci.

Bonjour Sambou,

Quand vous nous parlez de la 2ème ligne qui bug, si c'est

 .Range("B" & Derligne) = CStr(Me.txt_nom_art)

comme le dit h2so4 que je salue, DerLigne semble correcte à voir la valeur prise quand même
Je pencherais pour un problème de référence [MANQUANTE]

Sinon vous mettez

  Sheets("Ma feuille").Select

Puis

With Sheets("Articles")

Est-ce que vous savez comment se nomme votre feuille

A+

Bonsoir à tous.

Oui je connais le nom de ma feuille BrunoM45.

Mais ce que j'ai remarqué, c'est quand la destination des données du userform est sous forme de plage, le code marche mais quand c'est sous forme de tableau, c'est le contraire. Quand le code ne marche pas, une fois que l'erreur se plante, quand je clique sur fin ou débogage, en fin du débogage s'affiche encore "excel à cesser de fonctionner" et le classeur se ferme. Puis relancer excel. Vraiment l'erreur la me fatigue 😫. Je ne sais vraiment pas comment résoudre l'erreur.

MERCI BEAUCOUP POUR VOTRE AVIE

bonjour et bonne année tout le monde,

Est-ce nécessaire de changer/séléctionner la feuille avec ce "Sheets("Ma feuille").Select" avec un userform active ? Pour moi en VBA, select est plutôt une malédiction.

Si Sheets("Articles").Range("B" & Derligne) est une cellule oridinaire ou partie d'un tableau, il y a une différence ?

Si vous écrivez quelque chose différent, avant d'écrire le contenu de l'userform, ca plante aussi ?

 With Sheets("Articles")
                .Range("B" & Derligne) = "Un essai"
                .Range("B" & Derligne) = CStr(Me.txt_nom_art)
             

Bonsoir et bonne année 2023 à tous.

Merci BsAlv, mais ça revient à la même chose 😔.

Une autre solution SVP.

re,

désolé, sans fichier, tout reste un pari

Rechercher des sujets similaires à "methode range objet worksheet echoue"