VBA pour retrouver la feuille puis la ligne à compléter

  • Initiateur de la discussion Initiateur de la discussion kbenmya
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kbenmya

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin de votre aide pour un petit programme VBA. Je ne comprends pas pourquoi il ne fonctionne pas. A chaque fois, j'ai un message d'erreur "L'indice n'appartient pas à la selection". Autrement dit, Excel ne retrouve pas la feuille (si je comprends bien...)

Si vous pouviez jeter un petit coup d'oeil au programme, je vous serais vraiment reconnaissante.

Comme le titre l'indique, le but de ce code est qu'Excel retrouve dans un premier temps la feuille à complèter. Son nom est indiqué dans la feuille Saisie n_Commande, cellule F10.
Dans un second temps, Excel doit retrouver la ligne à compléter. Cette ligne est déja pré remplie en partie par un formulaire(une autre feuille Saisie Code). Il doit donc retrouver la ligne qui contient le bon n° de pré commande dans la cellule G10 et compléter les cellules en face. Ce numéro est saisi dans la feuille Saisie n_Commande cellule A1.

Sub Saisie n_Commande()
Dim code_transfert As String

code_transfert= Trim(Sheets("Saisie n_Commande").Range("F10"))

'Recherche de l'onglet qui correspond au code de transfert

Dim i As Integer
i = 9
While code_transfert.Columns(2).Rows(i).Value <> ""
i = i + 1
Wend

' recherche de la ligne à compléter
i = 9
While code_transfert.Columns(12).Rows(i).Value <> Sheets("Saisie n_Commande").Range("F7").Value
i = i + 1
Wend

' Mise à jour du n° bon commande
code_transfert.Columns(15).Rows(i).Value = Sheets("Saisie n_Commande").Range("F12").Value

' Mise à jour de la date de réception du n° de commande
code_transfert.Columns(17).Rows(i).Value = Sheets("Saisie n_Commande").Range("J12").Value
code_transfert.Columns(18).Rows(i).Value = Sheets("Saisie n_Commande").Range("K12").Value
code_transfert.Columns(19).Rows(i).Value = Sheets("Saisie n_Commande").Range("L12").Value



End Sub




Merci bcp pour votre aide,
Je pense que le souci est dans la recherche de la ligne à compléter mais toute seule je n'y arrive pas.

Merci.
 
Re : VBA pour retrouver la feuille puis la ligne à compléter

Bonjour,

Si j'ai bien compris pour la feuille ce serait plutôt ceci:
Code:
Sub Saisie_n_Commande()
Dim sh_transfert As Worksheet
    Set sh_transfert = Sheets(Trim(Sheets("Saisie n_Commande").Range("F10")))
    
    Dim i As Integer
           i = 9
    While sh_transfert.Columns(12).Rows(i).Value <> Sheets("Saisie n_Commande").Range("F7").Value
        i = i + 1
    Wend
    ' Mise à jour du n° bon commande
    sh_transfert.Columns(15).Rows(i).Value = Sheets("Saisie n_Commande").Range("F12").Value
    ' Mise à jour de la date de réception du n° de commande
    sh_transfert.Columns(17).Rows(i).Value = Sheets("Saisie n_Commande").Range("J12").Value
    sh_transfert.Columns(18).Rows(i).Value = Sheets("Saisie n_Commande").Range("K12").Value
    sh_transfert.Columns(19).Rows(i).Value = Sheets("Saisie n_Commande").Range("L12").Value
 
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
237
Réponses
2
Affichages
201
Réponses
1
Affichages
180
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
177
Retour