Double saisie simultanée

  • Initiateur de la discussion Initiateur de la discussion JimGTI
  • 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 !

J

JimGTI

Guest
Bonjour a tous,

J'aimerais savoir si sous excel 2003, il est possible d'effectuer une double saisie dans deux tableaux distinct?

Je voudrais aussi savoir si il est possible de laisser dans le tableau B (dans lequel les données se sont saisies automatiquement, a partir du tableau A) une fois les données du tableau A effacées.

Merci de votre aide.
 
Re : Double saisie simultanée

En modifiant comme cela:

Code:
Range("A21:I38").Select
Selection.Copy
Sheets("Base de données commande").Select
Cells(65535, 2).End(xlUp)(2).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Commande").Select
Range("D15").Select
Selection.Copy
Sheets("Base de données commande").Select
Cells(65535, 1).End(xlUp)(2).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Commande").Select
Range("A21:I38").Select
Selection.ClearContents
Range("D15").Select
Selection.ClearContents
End Sub

les données récupéré en A21:I38 viennent bien les unes en dessous des autres

mais les numéros de commandes en D15 ne viennent pas en face des lignes produits

Code:
n commande 1       produit 1
                     produit 1

j'entre une nouvelle commande, j’exécute la macro:

Code:
n commande 1       produit 1
n commande 2       produit 1
                       produit 2
                       produit 2

Bon apétit
 
Re : Double saisie simultanée

With Sheets("Base de données commande")
Sheets("Commande").Range("A21:I38").Copy Destination:=.Cells(65535, 2).End(xlUp).Offset(1, 0)
NbRef = .Cells(65535, 2).End(xlUp).row - .Cells(65535, 1).End(xlUp).row
Sheets("Commande").Range("D15").Copy Destination:=Range(.Cells(65535, 1).End(xlUp).Offset(1, 0)
Sheets("Commande").Range("A21:I38").ClearContents
Sheets("Commande").Range("D15").ClearContents
End With

ceci devrait bien aller en autant que tu sois sur la feulle "commande" pour exécuter ton code

oops !, correction.... on doit connaitre le nombre d'article par commande afin de répéter cette valeur dans la colonne 1


With Sheets("Base de données commande")
Sheets("Commande").Range("A21:I38").Copy Destination:=.Cells(65535, 2).End(xlUp).Offset(1, 0)
LaRow = .Cells(65535, 1).End(xlUp).Offset(1, 0).Row
NbRef = LaRow - .Cells(65535, 1).End(xlUp).Row
Val = Sheets("Commande").Range("D15").Value
.Range(.Cells(LaRow, 1), .Cells(LaRow + NbRef, 1)) = Val
Sheets("Commande").Range("A21:I38").ClearContents
Sheets("Commande").Range("D15").ClearContents
End With
 
Dernière édition:
Re : Double saisie simultanée

je te remercie pour ton aide

je viens d’essayer ton dernier code, cependant il y a un problème avec la ligne

Val = Sheets("Commande").Range("D15").Value
.Range(.Cells(LaRow, 1), .Cells(LaRow + NbRef, 1)) = Val

voici le message:
"Un appel de fonction dans la partie gauche de l'affectation doit renvoyer une valeur de type Variant ou Object."

est-ce que la fonction de "Val" est d'attribué un numéro?
 
Re : Double saisie simultanée

excuse moi, ma faute, val est une commande réservé.... change val pour lavaleur..

With Sheets("Base de données commande")
Sheets("Commande").Range("A21:I38").Copy Destination:=.Cells(65535, 2).End(xlUp).Offset(1, 0)
LaRow = .Cells(65535, 1).End(xlUp).Offset(1, 0).Row
NbRef = LaRow - .Cells(65535, 1).End(xlUp).Row
Lavaleur = Sheets("Commande").Range("D15").Value
.Range(.Cells(LaRow, 1), .Cells(LaRow + NbRef, 1)) = Lavaleur
Sheets("Commande").Range("A21:I38").ClearContents
Sheets("Commande").Range("D15").ClearContents
End With
 
Re : Double saisie simultanée

Je te remercie beaucoup cela marche parfaitement!

Je souhaite mettre ce fichier sur le réseau de l'entreprise, mais il y un problème avec l'autorisation d’exécution de la macro..

Est-ce que quelqu'un sait comment je pourrais donner l'autorisation a mes collègues de lire et modifier le fichier?
 
Re : Double saisie simultanée

Plaisir jimGTI !

Si je comprends bien la situation, il faut que le niveau de sécurité prensent dans Excel soit abaissé pour permettre l'exécution de la macro... avec Excel 2007 & +.... tu vas dans le menu développeur et tu clique sur sécurité macro et ensuite sur l'option à gauche paramètres des macros et tu met l'autorisation en conséquence.... ce qui arrive, cette autorisation doit être faite sur tout les PC que ton fichier sera utilisé !
 
Re : Double saisie simultanée

Merci de ton conseil je vais regarder cela de près.

Une petite erreur subsiste au sujet de l’exécution de la macro

lorsque je commande un seul produit (donc une ligne), le numéro de commande apparaît sur deux ligne

une idée de ce qui pourrait causer cela stp?
 
Re : Double saisie simultanée

Oui.... voici une autre approche

je calcul le nombre d'élément qu'il y a dans la forme de commande en premier

With Sheets("Base de données commande")
NbArticle = 21 - Cells(39, 1).End(xlUp).Row + 1
Sheets("Commande").Range("A21:I38").Copy Destination:=.Cells(65535, 2).End(xlUp).Offset(1, 0)
LaRowNoCommande = .Cells(65535, 1).End(xlUp).Offset(1, 0).Row
ValEUR = Sheets("Commande").Range("D15").Value
.Range(.Cells(LaRowNoCommande, 1), .Cells(LaRowNoCommande + NbArticle, 1)) = ValEUR
Sheets("Commande").Range("A21:I38").ClearContents
Sheets("Commande").Range("D15").ClearContents
End With
 
Re : Double saisie simultanée

Je viens d'essayer ce que tu m'as dit (baisser le niveau de sécurité des macros sur tous les postes) et effectivement cela marche très bien! Je te remercie beaucoup

il me reste donc a résoudre le problème de copie du numéro de commande
 
Re : Double saisie simultanée

Oui.... voici une autre approche

je calcul le nombre d'élément qu'il y a dans la forme de commande en premier

With Sheets("Base de données commande")
NbArticle = 21 - Cells(39, 1).End(xlUp).Row + 1
Sheets("Commande").Range("A21:I38").Copy Destination:=.Cells(65535, 2).End(xlUp).Offset(1, 0)
LaRowNoCommande = .Cells(65535, 1).End(xlUp).Offset(1, 0).Row
ValEUR = Sheets("Commande").Range("D15").Value
.Range(.Cells(LaRowNoCommande, 1), .Cells(LaRowNoCommande + NbArticle, 1)) = ValEUR
Sheets("Commande").Range("A21:I38").ClearContents
Sheets("Commande").Range("D15").ClearContents
End With

oups, le problème est identique, j'ai toujours deux numéro de commande sur deux ligne même si je n'ai qu'un produit commandé...
 
Re : Double saisie simultanée

Ok, tu veux avoir une protection au cas que quelqun utilise la macro sans avoir de produit commandé ?

là, j'avoue que je suis un peu confus....

s.v.p., explique le plus clairement possible ce qui peut être entré et ce que le résultat doit être
 
Dernière édition:
Re : Double saisie simultanée

non je voulais juste mettre ce fichier en réseau et que tout le monde puisse le modifié, ça c'est chose faite 😉

je veux entré dans une feuille commande en D15 mon numéro de commande, puis dans les cellules (A21:I38) les données sur la commande.

en exécutant ma macro, je veux que dans la feuille base de données, le numéro de commande se retrouve en face des produits, qu'il y en ai 1 ou plus.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
729
Réponses
3
Affichages
197
Réponses
11
Affichages
266
Réponses
1
Affichages
129
Réponses
10
Affichages
512
Réponses
1
Affichages
236
Réponses
23
Affichages
680
Retour