Double saisie simultanée

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re

J'ai pour habitude de nommer endives : With /End With

Pour la réponse à ton MP, je vais tarder à te répondre, je me bois d'abord un tit café tout en fumant ma cancerette puis je reviens.

Si tu cherches bien tu trouveras cette façon d'écrire sur XLD (où sur le web anglophone dédié à Excel ou je vais m'abreuver aussi les soirs de pleine lune, souvent les mois en bre ;) )

A dans bientot.
 

Hellboy

XLDnaute Accro
Re : Double saisie simultanée

L'effort est là quand même ... ;-)

VB:
Sub Enregistrement()
 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
With Sheets("Base de données commande")
    Set dst = .[D65536].End(xlUp)(2).Resize(nr, 9)
        dst.Value = src.Value
    Set dst = .[A65536].End(xlUp)(2).Resize(nr, 1)
        dst.Value = Sheets("Commande").Range("D15").Value
    Set dst = .[B65536].End(xlUp)(2).Resize(nr, 1)
        dst.Value = Sheets("Commande").Range("K7").Value
    Set dst = .[C65536].End(xlUp)(2).Resize(nr, 1)
        dst.Value = .Range("L7").Value
End With
Set dst = Nothing
Set src = Nothing
 
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re


HellBoy: Tu es sur de ton dernier code ?
Y aurait pas comme un décalage, par hasard ?

Bon c'est sur faut aimer les endives
(Ci-dessous code modifié sans tenir compte de K7 et L7, puisque absents de la question initiale)

Code:
Sub EnregistrementTER()
 Dim src As Range, dst As Range, nr As Long, nc
 With Sheets("Commande")
    nc = .[D15]
    With .Range("A20").CurrentRegion
        nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
    End With
End With
With Sheets("Base de données commande")
    Set dst = .[A65536].End(xlUp)(2).Resize(nr, 9)
        With dst
            .Offset(, 1).Value = src.Value: .Columns(1) = nc
        End With
End With
Set dst = Nothing
Set src = Nothing
End Sub
 
Dernière édition:

Hellboy

XLDnaute Accro
Re : Double saisie simultanée

Staple1600 bah tu sais, si on me dit
Génial ca marche!!
, moi il ne m'en faut pas plus.... d'ailleurs je crois que nous sommes rendu les 2 principaux intéressé !;-)

J'ai essayé de rajouter une endives de plus à ton code, mais là je crois que je me suis gouré ;-)

VB:
[BOLD]With[/BOLD] Sub EnregistrementTER()
  Dim src As Range, dst As Range, nr As Long, nc
  With Sheets("Commande")
     nc = .[D15]
     With .Range("A20").CurrentRegion
         nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
     End With
 End With
 With Sheets("Base de données commande")
     Set dst = .[A65536].End(xlUp)(2).Resize(nr, 9)
         With dst
             .Offset(, 1).Value = src.Value: .Columns(1) = nc
         End With
 End With
 Set dst = Nothing
 Set src = Nothing
 [BOLD]End With [/BOLD]End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Bonsoir

HellBoy: tu es sur que ton dernier code n'est pas un copier/coller du mien car je ne vois d'endive en plus ??

JMGTI: On continue sans toi ?
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re

HellBoy
les endives vont par paire chez VBA.
(D'ailleurs on en fait une belle paire tous les deux , vu que JMGTI a disparu du fil ;) )

Un End With finit toujours un With
Donc si tu rajoutes un End With sans qu'il soit rattaché à un With, tu l'auras amère l'endive ;)
 

Hellboy

XLDnaute Accro
Re : Double saisie simultanée

(D'ailleurs on en fait une belle paire tous les deux , vu que JMGTI a disparu du fil )
À 2 ont a fini par l'avoir. Même pas eu le temps de rendre à go!

Méchant rigolo JM. J'ai l'air fou de rire tout seul au labo là !!!
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re

Comme un rire vaut un steack, tu sais quoi manger avec tes endives ;)

PS: je ne suis jamais méchant mais souvent ironique, c'est point pareil.
(et comme je pratique l’auto-dérision, l'équilibre est respecté non ? )


JMGTI: Fais nous signe !


HellBoy:
je pense qu'on peut arrêter là de deviser car je suppose que JMGTI sembant avoir une réponse à sa question, ne reviendra peut-être pas dans ce fil.
 
Dernière édition:

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Bonsoir à tous


Merci HellBoy d'avoir pris le relais

JMGTI: Evites, stp, les questions à tiroirs, prends plutôt le temps de poser ton problème avec tous ses tenants et aboutissants dès ton premier message.
Tu n'as pas évoqué ce qui suit dans ton premier message
Si je me permets cette suggestion, c'est qu'elle est dans la charte du forum.

HellBoy: si tu veux un chouïa d'élégance dans ton code, ajoutes des endives dans celui-ci.
(Si tu as l'habitude de lire mes messages, tu verras de quoi je parle ;) )
Bonjour a tous,

Je n'ai pas effectivement précisé cela dés le départ car moi même je ne savais que j'aurais besoin de cette fonction supplémentaire.

Je vais testé ce que vous m'avez proposé

Je reviens vers vous ensuite;
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Re


HellBoy: Tu es sur de ton dernier code ?
Y aurait pas comme un décalage, par hasard ?

Bon c'est sur faut aimer les endives
(Ci-dessous code modifié sans tenir compte de K7 et L7, puisque absents de la question initiale)

Code:
Sub EnregistrementTER()
 Dim src As Range, dst As Range, nr As Long, nc
 With Sheets("Commande")
    nc = .[D15]
    With .Range("A20").CurrentRegion
        nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
    End With
End With
With Sheets("Base de données commande")
    Set dst = .[A65536].End(xlUp)(2).Resize(nr, 9)
        With dst
            .Offset(, 1).Value = src.Value: .Columns(1) = nc
        End With
End With
Set dst = Nothing
Set src = Nothing
End Sub
Il y a bien un décalage avec le code de Hellboy ;)
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Code:
[BOLD]With[/BOLD] Sub EnregistrementTER()
  Dim src As Range, dst As Range, nr As Long, nc
  With Sheets("Commande")
     nc = .[D15]
     With .Range("A20").CurrentRegion
         nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
     End With
 End With
 With Sheets("Base de données commande")
     Set dst = .[A65536].End(xlUp)(2).Resize(nr, 9)
         With dst
             .Offset(, 1).Value = src.Value: .Columns(1) = nc
         End With
 End With
 Set dst = Nothing
 Set src = Nothing
 [BOLD]End With [/BOLD]End Sub

Serait-il possible d'avoir un code qui puisse prendre en compte les informationS en K7 et L7?
 
Dernière édition:

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Ce n'est pas très élégant... mais bon...

VB:
Sub Enregistrement()
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").[D65536].End(xlUp)(2).Resize(nr, 9)
dst.Value = src.Value

Set dst = _
Sheets("Base de données commande").[A65536].End(xlUp)(2).Resize(nr, 1)
dst.Value = Sheets("Commande").Range("D15").Value

Set dst = _
Sheets("Base de données commande").[B65536].End(xlUp)(2).Resize(nr, 1)
dst.Value = Sheets("Commande").Range("K7").Value

Set dst = _
Sheets("Base de données commande").[C65536].End(xlUp)(2).Resize(nr, 1)
dst.Value = Sheets("Commande").Range("L7").Value

Set dst = Nothing
Set src = Nothing

End Sub
Je viens d'essayer ce code il recopie toutes les infos sauf celles données en K7 et L7, cependant il laisse bien l'espace dans la feuille 1 "base de données commandes" a l'endroit ou ces infos devraient être recopié.
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Bonjour


C'était pourtant pas compliqué d'adapter le code précédent ;)
VB:
Sub EnregistrementQUATRO()
 Dim src As Range, dst As Range, nr As Long, nc
 Dim kk7, ll7
 With Sheets("Commande")
    nc = .[D15]: kk7 = .[K7]: ll7 = .[L7]
    With .Range("A20").CurrentRegion
        nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
    End With
End With
With Sheets("Base de données commande")
    Set dst = .[A65536].End(xlUp)(2).Resize(nr, 9)
        With dst
            .Offset(, 1).Value = src.Value
            .Columns(1) = nc
            .Columns(11) = kk7
            .Columns(12) = ll7
        End With
End With
Set dst = Nothing
Set src = Nothing
End Sub
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Bonjour


C'était pourtant pas compliqué d'adapter le code précédent ;)
VB:
Sub EnregistrementQUATRO()
 Dim src As Range, dst As Range, nr As Long, nc
 Dim kk7, ll7
 With Sheets("Commande")
    nc = .[D15]: kk7 = .[K7]: ll7 = .[L7]
    With .Range("A20").CurrentRegion
        nr = .Rows.Count - 1: Set src = .Offset(1, 0).Resize(nr)
    End With
End With
With Sheets("Base de données commande")
    Set dst = .[A65536].End(xlUp)(2).Resize(nr, 9)
        With dst
            .Offset(, 1).Value = src.Value
            .Columns(1) = nc
            .Columns(11) = kk7
            .Columns(12) = ll7
        End With
End With
Set dst = Nothing
Set src = Nothing
End Sub
Ce n'est pas compliqué lorsque l'on sait

Je te remercie
Je vais essayer ce code de suite
 

JimGTI

XLDnaute Junior
Re : Double saisie simultanée

Cela ne marche pas, les infos sont recopiées sans prendre en compte les données des cellules K7 et L7 ;)
 

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re


Si, si, cela marche... (j'ai testé avant de poster, figures-toi :rolleyes:)

Tu veux une copie d'écran pour preuve ?
tproof.jpg

(Cliques sur l'image pour la voir en taille réelle)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Double saisie simultanée

Re, salut HellBoy


Non HellBoy, tout a fait typique de ma réaction face aux commentaires des demandeurs disant que cela ne marche pas alors qu'ils devrait ecrire :
je n'arrive pas à faire fonctionner ce que tu me proposes
 

Fo_rum

XLDnaute Accro
Re : Double saisie simultanée

Bonjour,

de façon plus B a BA...sique :
Code:
Private Sub CommandButton1_Click()
  Dim Ll As Long
  With Sheets("Base de données commande")
    Ll = .Cells(Rows.Count, 3).End(xlUp).Row + 1
    .Range("C" & Ll & ":K" & Ll + 17).Value = Range("A21:I38").Value
    .Range("A" & Ll) = [D7]
    .Range("B" & Ll) = [K7]
    Range("A21:H38,D7,K7") = ""
  End With
End Sub
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas