Copie de cellules automatique sur une feuille différente

Sebosteo

XLDnaute Nouveau
Bonjour, je sollicite votre aide suite pour réaliser une macro excel qui ressemble à celle faites par phlaurent55 ici:

https://www.excel-downloads.com/threads/macro-pour-archiver-des-donnees.182776/

J'ai réalisé un facturier que j'aimerais optimiser. Le fichier possède trois feuilles: une base de données patients, la facture, et un ficher archive.
C'est ce dernier fichier sur lequel je me casse les dents. J'aimerai réaliser un copier/coller automatique de certaines cellules de la feuille facture vers cette archive. J'ai essayé en réarrangeant la macro pour l'adapter à mon cas mais il y a toujours bon nombre d'erreurs. j’espérais donc pouvoir m'appuyer sur votre aide pour la réaliser.

Je cherche donc à copier les cellules B16, D35 et D37 de la facture vers l'archive, mais je ne trouve pas comment passer à la ligne automatiquement en conservant mes données d'archives précédentes.

Je ne sais pas si j'ai été clair, mais je vous remercie par avance de votre aide.
 
Dernière modification par un modérateur:

job75

XLDnaute Barbatruc
Re : Copie de cellules automatique sur une feuille différente

Bonjour Sebosteo, Gardien de phare,

Le plus simple est de créer un bouton "Archiver" et de lui affecter cette macro :

Code:
Sub Archiver()
Dim n&, a(2)
n = [B16]: a(0) = [C7]: a(1) = [D35]: a(2) = [D37]
If n > 0 Then
  With Sheets("archive").Cells(n + 1, 2)
    If .Value = "" Then
      .Resize(, 3) = a
      MsgBox "La facture a été archivée", 64
    ElseIf .Value = a(0) Then
      .Resize(, 3) = a
      MsgBox "Archivage de la facture modifié", 64
    Else
      MsgBox "Le numéro de facture est utilisé pour un autre client !", 48
      [B16] = ""
      [B16].Select
    End If
  End With
Else
  MsgBox "Entrez le numéro de facture..."
  [B16].Select
End If
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Copie de cellules automatique sur une feuille différente

Re,

Noter qu'il est possible de mettre le numéro de facture automatiquement par cette formule en B16 :

Code:
=DECALER(archive!A1;NBVAL(archive!B:B)-(DECALER(archive!B1;NBVAL(archive!B:B)-1;)=C7);)
La macro se simplifie :

Code:
Sub Archiver()
Dim n&, a(2)
n = [B16]: a(0) = [C7]: a(1) = [D35]: a(2) = [D37]
With Sheets("archive").Cells(n + 1, 2)
  MsgBox "Archivage " & IIf(.Value = "", "créé", "modifié"), 64
  .Resize(, 3) = a
End With
End Sub
A+
 
Dernière édition:

Sebosteo

XLDnaute Nouveau
Re : Copie de cellules automatique sur une feuille différente

Merci d'avoir retiré le fichier où figuraient des noms. Je n'ai sans doute pas uploader le dernier fichier anonyme que j'ai créé.

Un grand MERCI a job75 pour la macro (et la formule de facturation egalement), c'est exactement ce que je cherchais a faire!! merci beaucoup!!

a bientot
 

Discussions similaires

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU