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

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.
 
G

Guest

Guest
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+
 

Discussions similaires

Réponses
6
Affichages
238
Réponses
5
Affichages
180

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé