copier des données d'une feuille et remplacer le contenu sur une autre feuille

nadog

XLDnaute Nouveau
Bonjour aux passionnés,

J'aimerais améliorer un petit programme d'inventaire.
Je voudrais prendre les valeurs de D4 à D13 de la feuille "Accueil" et je voudrais remplacer avec ses nouvelles valeurs sur la feuille "BASE" (base de données). Il faut faire une recherche via la "Pièce" comme référence et remplacer les valeurs sur cette ligne.

Je suis bloqué et j'ai essayé la macro rechercher et remplacer, mais sans résultats.

Merci à l'avance de pouvoir m'aider

je joins le fichier.
 

Pièces jointes

  • inventaire.xls
    58 KB · Affichages: 46
  • inventaire.xls
    58 KB · Affichages: 46
  • inventaire.xls
    58 KB · Affichages: 46

nadog

XLDnaute Nouveau
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

bonjour DoubleZero,

Ce n'est pas un mot de passe. C'est simplement n'importe quel caractère qui suffit d'entrer. (moi je demande le nom mais ça peut être un numéro d'employé aussi)
J'en ai besoin pour pouvoir compiler dans la base de transactions.

Merci
 

Staple1600

XLDnaute Barbatruc
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour à tous

00:
Ne jamais ouvrir un fichier Excel qui ne sort pas ton propre four en activant les macros ;)
Sinon la fatalité virulente frappera ...
Tu ouvres en désactivant, tu mets en commentaire les procédures potentiellement enquiquinantes
Tu fermes le classeur et hop cette fois-ci tu actives les macros.


NB: On ne peut pas en vouloir à nadog puisque la charte du forum désormais ne déconseille plus de joindre des fichiers avec des workbook_open ou auto_open actives....
 

DoubleZero

XLDnaute Barbatruc
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour à toutes et à tous,

@ Staple1600 :D,

...Ne jamais ouvrir un fichier Excel qui ne sort pas ton propre four en activant les macros...

Je te remercie :) pour ce rappel important...

... la charte du forum désormais ne déconseille plus de joindre des fichiers avec des workbook_open ou auto_open actives...

En effet... et c'est regrettable :rolleyes:

A bientôt :):)
 

MJ13

XLDnaute Barbatruc
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour Nadog, Jean-Marie, 00

Faut peut-être arrêter de psychoter :eek:, quand on ouvre le fichier voici ce que contient le Workbook_Open, il n'y a rien de méchant :).

Code:
Private Sub Workbook_Open()
Dim a As String
1 a = InputBox("Veuillez entrer votre nom") 'affiche une boite de dialogue
If a = "" Then GoTo 1 'attends une valeur sinon fait une boucle
ActiveSheet.Unprotect
Sheets("Accueil").Range("C17") = a 'place la valeur de inputbox dans la cellule C17
ActiveSheet.Protect
'End If  ' ne pas activer
End Sub

Personnellement, le workbook_open, ne me gêne pas, tant qu'il en te modifie pas te barres d'outils, tes paramêtres ou sinon, il faut le remettre d'applomb en sortant, mais il ne faudra pas quitter avec ctr+Alt+Sup.
 

Staple1600

XLDnaute Barbatruc
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Re

MJ13:
Je parlais en général pas de ce fichier en particulier
POUR MEMOIRE
Voici ce que disait l'ancienne charte:
c) Ce forum offre la possibilité unique de joindre des fichiers, profitez de cette merveilleuse facilité mais pensez bien qu’il faut quand même faire une description de votre problème dans le message… Joindre un fichier avec comme message ' voir fichier joint ' … équivaut un peu comme écrire 'trouvez la réponse pour moi et finissez mon travail'. De plus dans ce forum chacun a sa spécialité, si vous ne décrivez pas clairement de quoi il s’agit, mais qu’il faut télécharger votre fichier pour le savoir, dites vous bien que vous minimisez vos chances de réponse.
En ce qui concerne la possibilité de pièces jointes, elles devront être explicites et comporter juste un exemple de votre problème, pas une application entière. Il est inutile de joindre un tableau formaté de 100 lignes et 30 colonnes et plusieurs feuilles pour un exemple. De plus les données contenues devront être 'purgées' de toute information confidentielle. Le Webmaster ne pourra en aucun cas être tenu pour responsable.
Par ailleurs les macros évènementielles sur WorkBook_Open et Workbook_BeforeClose (ou Auto_Open / Auto_Close), sont à éviter, on peut très bien montrer son problème sans avoir à faire subir quoique ce soit au lecteur, sinon on le signale clairement dans le post.
Désormais c'est plus succinct certes
5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.
mais je pense personnellement qu'on aurait du laisser dans ma nouvelle charte ce que j'ai mis en bleu.
 
Dernière édition:

nadog

XLDnaute Nouveau
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour à tous,

Désolé, je ne voulais pas créer une panique avec la fonction "Private Sub Workbook_Open()"
Voici je remets le fichier avec la fonction enlevé.

Milles excuses.

Merci de votre compréhension.
 

Pièces jointes

  • inventaire_révisé.xls
    50 KB · Affichages: 35

DoubleZero

XLDnaute Barbatruc
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour à toutes et à tous,

Un essai avec ce code :

Code:
Option Explicit
Sub Copier_coller_transposer()
    Application.ScreenUpdating = False
    Sheets("Accueil").Range("d6:d13").Copy
    Sheets("BASE").Activate
    On Error GoTo fin
    Columns(2).Find(what:=Sheets("Accueil").Range("c4")).Select
    With Selection
        .Offset(, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
        .Offset(, -1) = Sheets("Accueil").Range("d5")
        .Value = Sheets("Accueil").Range("d4")
    End With
    Sheets("Accueil").Activate
    Application.CutCopyMode = False
    Exit Sub
fin:
    MsgBox "ATTENTION : " & Sheets("Accueil").Range("c4") & " n'existe pas dans l'onglet BASE."
    Sheets("Accueil").Activate
    With Application: .CutCopyMode = False: .ScreenUpdating = True: End With
End Sub

A bientôt :)
 

Staple1600

XLDnaute Barbatruc
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour à tous


Un autre essai (un peu moins abouti que celui de 00 ;))
qui se dispense de l'usage du copier/colller
(Car "C'est mon choix", comme pouvait dire Evelyne T.)
Code:
Sub a()
Dim t, l&
With Sheets("Accueil")
    l = Application.Match(.Range("C5"), Sheets("BASE").Range("A2:A4"), 0) + 1
    t = .Range("D6:D13").Value
End With
Sheets("BASE").Cells(l, "C").Resize(, UBound(t)) = Application.Transpose(t)
End Sub
 

nadog

XLDnaute Nouveau
Re : copier des données d'une feuille et remplacer le contenu sur une autre feuille

Bonjour DoubleZero et staple1600,

Merci pour le code. Il fonctionne à merveille. J'ai préféré celui de DoubleZero.
Vous êtes des pros!

Nadog
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 068
Membres
103 453
dernier inscrit
Choupi