Double saisie simultanée

JimGTI

XLDnaute Junior
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.
 

JimGTI

XLDnaute Junior
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
 

Hellboy

XLDnaute Accro
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:

JimGTI

XLDnaute Junior
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?
 

Hellboy

XLDnaute Accro
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
 

JimGTI

XLDnaute Junior
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?
 

Hellboy

XLDnaute Accro
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é !
 

JimGTI

XLDnaute Junior
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?
 

Hellboy

XLDnaute Accro
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
 

JimGTI

XLDnaute Junior
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
 

JimGTI

XLDnaute Junior
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é...
 

Hellboy

XLDnaute Accro
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:

JimGTI

XLDnaute Junior
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.
 

Discussions similaires

Réponses
9
Affichages
261
Haut Bas