Double saisie simultanée

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

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

De plus, lorsqu’il y a plus de trois produit commandé (trois ligne) le numéro de commande ne s'affiche pas plus de trois fois

en faite, cela marche uniquement avec deux lignes
 

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.
 

Hellboy

XLDnaute Accro
Re : Double saisie simultanée

Je crois que je vais l'avoir.... c'est ça qui arrive quand ont en fait trop en même temps...

J'ai rajouter une vérification qui permet de gèrer certaine exception comme une seule entré ou aucune... mais ça garanti pas l'épreuve des nuls ;-)

VB:
With Sheets("Base de données commande")
    NbArticle = Cells(39, 1).End(xlUp).Row
    Select Case NbArticle
        Case 20: NbArticle = 0
        Case 21: NbArticle = 1
        Case Else: NbArticle -20
    End Select
    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
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Bonsoir

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
JimGTI:
Comme tu n'a pas précisé quel niveau de sécurité tu as choisi, j'espère que ton choix s'est porté sur : Niveau de sécurité moyen.

Sinon tes PCS sont potentiellement exposés à l’exécution automatique de code VBA malveillants.

PS: HellBoy ;)
Code:
Sheets("Commande").Range("A21:I38,D15").ClearContents
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re, Bonsoir HellBoy

Pourtant avec la chaleur qui régné aux enfers , il doit être difficile de "s'oxydo-réduire" facilement ;)

Sinon puisque j'ai passé un peu de temps sur la PJ de JimGTI.
Voila une autre voie possible
Code:
Sub a()
Dim src As Range, dst As Range, nr As Long
With Sheets("Commande").Range("A20").CurrentRegion
    nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
End With
Set dst = _
Sheets("Base de données commande").[A65536].End(xlUp)(2).Resize(nr, 9)
dst.Value = src.Value
End Sub
Comme cela tu as l'embarras du choix.
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Bonjour, je vous remercie pour votre participation.

Staple1600: Est-ce que le niveau de sécurité moyen permettra a mes interlocuteurs d’exécuter la macro?

Je vais essayer de suite le code que tu proposes, je vous tiens au courant
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Staple1600, le code que tu proposes ne marche pas, quand j’exécute, il ne se passe strictement rien
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Bonjour Hellboy,

je viens d'essayer le code que tu m'as soumis, mais

il y a une erreur sur la ligne:

Case Else: NbArticle -20

message d'erreur: "Erreur de compilation Sub, Fonction ou property attendue"
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Bonjour

JimGTi: Tu penses que je poste des propositions sans les avoir testées?
A ton avis?

Le code que je te soumets fonctionne quand toutes les conditions sont réunies.
En premier lieu la présence de deux feuilles nommées Commande et Base de données commande
Cela devrait étre le cas (mais j'ai un doute car dans ta PJ la feuille se nomme Feuil1)

En tout cas , je me suis servi de ta PJ pour tester (et renommant Feuil1 en Commande) et je te confirme que mon code est fonctionnel sur mon PC.

Pour répondre à ta question, oui elles fonctionneront mais il y aura un message d'alerte demandant d'activer les macros, auquel il faudra répondre OUI.

Puisqu'il s'agit des PCS de tonboulot, je te conseille fortement de régler le niveau de sécurité sur Moyen par souci de sécurité et pour préserver l'intégrité des données professionnelles que je suppose essentielles.
 
Dernière édition:

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Bonjour

JimGTi: Tu penses que je poste des propositions sans les avoir testées?
A ton avis?

Le code que je te soumets fonctionne quand toutes les conditions sont réunies.
En premier lieu la présence de deux feuilles nommées Commande et Base de données Commande
Cela devrait étre le cas (mais j'ai un doute car dans ta PJ la feuille se nomme Feuil1)

En tout cas , je me suis servi de ta PJ pour tester (et renommant Feuil1 en Commande) et je te confirme que mon code est fonctionnel sur mon PC.
Je viens de vérifier et mes feuilles se nomment bien Commande et base de données.

En aucun cas je n'ai émis un doute sur le fait que tu est testé ou non ;)

Je vais réessayer.
 

Discussions similaires


Haut Bas