Saisie étirée sur plusieurs cellules en InputBox

Bonjour à tous !

Je n'arrive pas à finalisé une macro... . En faite je voudrais créer un Inputbox! Je voudrais que ce dernier en fonction de la valeurs que je mets dedans me retranscrive la saisie de dans la colonne O (à partir de la ligne 2) et m'étire cette valeur par rapport aux valeurs saisie en colonne A de mon tableau.

Je m'y prends mal je suis bloqué ici :

Sub Mouvement()
Dim MVT As String
Rep = InputBox("Quel est le numéro de mouvement pour vos écritures?", "")
Range("o2", "o" & ligFin) = MVT

End Sub

Je ne sais pas si vous avez compris ma demande.

Merci d'avance pour votre aide.

Rebonjour

Si je regarde ton programme, c'est normal que ça ne fonctionne pas:

Sub Mouvement()
Dim MVT As String 'MVT = "" / Rep = ""
Rep = InputBox("Quel est le numéro de mouvement pour vos écritures?", "") 'MVT = "" / Rep = ""
Range("o2", "o" & ligFin) = MVT 'MVT = "" / Rep = InputBox
End Sub

Tu affectes MVT en valeur pour tes cellules, mais tu enregistres le résultat sous une variable Rep que tu n'utilises pas par la suite, si tu fais:

Sub Mouvement()
Dim MVT As String 'MVT = ""
MVT = InputBox("Quel est le numéro de mouvement pour vos écritures?", "") 'MVT = ""
Range("o2", "o" & ligFin) = MVT 'MVT = InputBox
End Sub

ça devrait mieux marcher, mais on peut directement écrire:

Sub Mouvement()
Range("o2", "o" & ligFin) = InputBox("Quel est le numéro de mouvement pour vos écritures?", "")
End Sub

Cette dernière écriture ne marche que si tu n'as pas besoin de contrôler la valeur retournée par l'InputBox, si tu as besoin de contrôler, c'est plutôt l'avant dernière version du programme qui sera à utiliser

Rebonjour !

Toujours à l’affût Ah d'accord merci mais j'ai quand même un message d'erreur : "Erreur d'execution '1004' m La méthode 'RAnge' de l'objet '_Global' a échoué...

Re,

Peux-tu joindre ton fichier avec le code final?

Re,

Peux-tu joindre ton fichier avec le code final?

Oui voilà

'
' COMPTAGED Macro
'

'
    Rows("2:4").Select
    Range("P2").Activate
    Selection.UnMerge
    Rows("4:4").Select
    Range("P4").Activate
    Selection.delete Shift:=xlUp
    Rows("3:3").Select
    Range("P3").Activate
    Selection.delete Shift:=xlUp
    Rows("1:1").Select
    Range("J1").Activate
    Selection.delete Shift:=xlUp
    Columns("A:A").Select
    Selection.NumberFormat = "dd/mm/yy;@"
    Call ReportCredit
    Call Mouvement
    Selection.Replace What:="/", Replacement:="/", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    ChDir "X:\ASSO Editions comptables"
    ActiveWorkbook.SaveAs Filename:="X:\ASSO Editions comptables\COMPTAGED.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
End Sub

Le code de l'input box est appelé est à part et appeler en "Call Mouvement"

Merci d'avance

63export.xlsx (13.25 Ko)

Re,

Malheureusement les programmes que tu appelles ne sont pas présents dans le fichier joint, et je n'ai pas leur code...

Ce que je veux vérifier, c'est que dans la partie qui ne marche pas, tu aies bien tout qui soit bon: variable avec valeur affectée, valeur bonne etc...

Re,

Malheureusement les programmes que tu appelles ne sont pas présents dans le fichier joint, et je n'ai pas leur code...

Ce que je veux vérifier, c'est que dans la partie qui ne marche pas, tu aies bien tout qui soit bon: variable avec valeur affectée, valeur bonne etc...

Vraiment désolé les codes appelés sont les suivants :

Sub ReportCredit()

Dim ligFin As Long

ligFin = Range("a" & Rows.Count).End(xlUp).Row

'copie des dates de facture et N°Pièce

Range("a2", "b" & ligFin).Copy

Range("a" & ligFin + 1).Select

ActiveSheet.Paste

'copie des n°compte à créditer

Range("h2", "h" & ligFin).Cut

Range("h" & ligFin + 1).Select

ActiveSheet.Paste

Application.CutCopyMode = False

'Copie des codes de journaux

Range("l2", "l" & ligFin).Copy

Range("l" & ligFin + 1).Select

ActiveSheet.Paste

'Copie des libéllés

Range("n2", "n" & ligFin).Copy

Range("n" & ligFin + 1).Select

ActiveSheet.Paste

'Couper les numéros de compte à créditer

Range("g2", "g" & ligFin).Cut

Range("e" & ligFin + 1).Select

ActiveSheet.Paste

Application.CutCopyMode = False

End Sub

et le code que tu as fait :

Sub Mouvement()

Dim MVT As String 'MVT = ""

MVT = InputBox("Quel est le numéro de mouvement pour vos écritures?", "") 'MVT = ""

Range("o2", "o" & ligFin) = MVT 'MVT = InputBox

End Sub

Bonjour,

Ah eh bien c'est normal alors que tu aies un souci, comme tu as décidé de mettre des sous programmes, tu n'as pas fais attention à la conservation des valeurs des variables, tu utilises donc la variable ligFin dans Sub Mouvement(), sachant que cette variable n'existe que dans le sous programme Sub ReportCredit().

En clair, elle vaut "" dans Sub Mouvement(), donc soit tu mets le code de Sub Mouvement dans Sub ReportCredit pour utiliser la variable, soit tu trouves un moyen de lui passer l'information, soit tu recalcules le numéro de ligne.

Oui c'était donc ça le problème j'ai résolu mon problème grâce à toi et j'ai réussi à comprendre surtout encore merci

Rechercher des sujets similaires à "saisie etiree inputbox"