VBA Instruction : Application.CutCopyMode

FFO

Grand merci. La solution répond bien à mon besoin et fonctionne correctement.

FFO,
Dernière solicitation. Auriez vous le morceau de code qui lance cette macro mais qui permet de rester sur le formulaire de saisie. Par Défaut la macro me renvoie vers la table qui reçoit les données?

D’avance merci

Ravis que cela te convienne
Intègres ces quelques lignes dans ta macro comme ceci :

Sub formulaire()
Sheets(« saisie_ordre »).Activate 'n’est pas obligatoire
Sheets(« HISTORIQUE_ORDRE »).Select
Range(« A2 »).Select

While ActiveCell <> « »
ActiveCell.Offset(1, 0).Select
Wend

n = 0
For each c in Sheets(« saisie_ordre »).Range(« B3:B18 »)
Sheets(« nom de l’onglet »).Range(« A » & Activecell.Row).offset(0,n).Value=c
n = n+1
Next

Sheets(« saisie_ordre »).Range(« B5 »).ClearContents
Sheets(« saisie_ordre »).Range(« B9 »).ClearContents
Sheets(« saisie_ordre »).Range(« B13:B17 »).ClearContents
Sheets(« saisie_ordre »).Range(« B3 »).Value = Sheets(« saisie_ordre »).Range(« B3 »).Value + 1

End Sub

N’oublies pas de ressaisir les guillemets et de modifier la donnée « nom de l’onglet »

Si soucis dis le moi car je ne peux tester n’ayant pas le fichier

hello FFO
si tu veux mettre du code il vaut mieux utiliser l’icône dans la fenetre de réponse représentant </>

ce qui donne cela

Range("A" &  Activecell.Row , "A" & Activecell.row+15).Value = Sheets("saisie_ordre").Range("B3:B18).Value

au lieu de
Range(« A » & Activecell.Row , « A » & Activecell.row+15).Value = Sheets(« saisie_ordre »).Range(« B3:B18 »).Value
ou cela

Sub formulaire()
Sheets("saisie_ordre").Activate 'n’est pas obligatoire
Sheets("HISTORIQUE_ORDRE").Select
Range("A2").Select

While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Wend

n = 0
For each c in Sheets("saisie_ordre").Range("B3:B18")
Sheets("nom de l’onglet").Range("A" & Activecell.Row).offset(0,n).Value=c
n = n+1
Next

Sheets("saisie_ordre").Range("B5").ClearContents
Sheets("saisie_ordre").Range("B9").ClearContents
Sheets("saisie_ordre").Range("B13:B17").ClearContents
Sheets("saisie_ordre").Range("B3").Value = Sheets("saisie_ordre").Range("B3").Value + 1

End Sub

Bonjour taz
Dans cette solution peut on utiliser le copier/coller pour récupérer une ligne de code de notre interlocuteur afin de lui proposer en rapport la sienne corrigée
Dans mes réponses mes propositions en sont le fruit et ainsi d éviter une saisie fastidieuse avec un risque d’erreur
Qu’en est il exactement ?

Si a la base il avait utilisé le </> (texte preformaté) oui…
Sinon le préformatage ne restaure pas une formule non formater, dans le cas de ton code j’ai juste remplacer les guillemets par

"  "

Donc c’est bien ce que je pressentais et d’opter pour ma manière d’opérer en invitant notre interlocuteur à corriger lui même les anomalies des guillemets plus simple et moins risqué pour moi
Merci à toi

De plus je n’ai pas cet icone dans la barre de menu

20230402_162221

Donc solution impossible pour moi

Bonjour FFO
Bizarre que tu n’as pas ce logo
Tu peut, pour bien formater ton code, agir comme ceci

triple accent grave (touche ALT-GR & touche 7), espace, vb, à la ligne

et après
triple accent grave, à la ligne

Entre les 2 tu peux coller le VBA tel qu’il apparait dans l’éditeur VBE

Sur smartphone, elle n’apparait pas, il faut alors cliquer sur la roue crantée pour voir toutes les options

Merci beaucoup pour cette solution

si j’ai bien compris ainsi :

Sheets("Feuil1").Range("A1") = "test"

Je confirme les propos de taz concernant l’icone celle-ci est bien avec mon PC mais pas sur ma tablette l’option est bien dans le menu du dernier icone des paramètres

Bonjour A tous
Ma macro avec vos corrections fonctionne bien et je vous remercie. Elle copie bien mes données, mais à chaque lancement, elle termine sur le feuillet « HISTORIQUE_ORDRE » alors que je souhaite rester sur lé formulaire de saisie « Saisie_HORDRE ». Auriez-vous une instruction supplémentaire à mettre dans le code VBA pour reste sur le formulaire et éviter les aller-retours ?
D’avance merci

Bonjour
Avec ton fichier à notre disposition ce serait plus simple car sans on est un peu en aveugle impossible de tester nos propositions

Remplace toute ta macro par celle-ci :

Sub formulaire()
i=2
Do While Sheets("HISTORIQUE_ORDRE").Range("A" & i)<> ""
i=i+1
loop
ligne =i

n = 0
For each c in Sheets("saisie_ordre").Range("B3:B18")
Sheets("nom de l’onglet").Range("A" & ligne).offset(0,n).Value=c
n = n+1
Next

Sheets("saisie_ordre").Range("B5").ClearContents
Sheets("saisie_ordre").Range("B9").ClearContents
Sheets("saisie_ordre").Range("B13:B17").ClearContents
Sheets("saisie_ordre").Range("B3").Value = Sheets("saisie_ordre").Range("B3").Value + 1

End Sub

Testes et dis moi car je ne peux sans fichier faire de même

Bonsoir FFO
Grand merci. La macro fonctionne comme il faut voir.
Cdlt
sergio

Bonjour
Parfait parfait
La prochaine fois un fichier joint sera le bien venu afin de tester nos propositions
Au plaisir

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.