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.
 

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

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 ;)
 

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
 

Discussions similaires

Réponses
14
Affichages
175

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla