« Publipostage » par userform

Bonjour à tous!!! :grinning:
J’ai de nouveau besoin de vos lumières, je cherche à faire un copier coller de certaines cellules d’un onglet vers des cellules d’un autre onglet. L’idée est de réaliser ce genre de publipostage via un numéro d’ordre renseigne sur un userform. Le concept me semblait simple mais je n’y arrive pas du tout!
J’imagine qu’il faut coder une recherchev des données de la textbox sur l’onglet base de données et ensuite mémoriser les cellules qui devront être recopiées puis coller ces infos mémorisées aux bons endroits dans l’autre onglet.
Merci pour toute l’aide apportée
Classeur1.xlsm (12,7 Ko)

Bonjour

Je ne sais pas si j’ai bien compris ta demande

Testes et dis moi

Onglet « donnees » cliques sur le bouton « Traitement »
A l’invite saisies un numéro
Regardes le résultat obtenu onglet « pj »

Fais moi un retour

Classeur1.xlsm (24,3 Ko)

1 « J'aime »

Merci pour cette réponse rapide. Est-ce qu’il serait possible d’avoir le code en clair sur le post plutôt que dans le classeur s’il te plaît.
Merci beaucoup

Tout d’abord est ce que cela te convient ?

Pour le code tu peux le récupérer dans le fichier en faisant simultanément les touches ALT+F11

le voici

Sub Traitement()
'
' Traitement Macro
'
numéro = InputBox("Veuillez saisir le numéro !!!", "Numéro")
If numéro = "" Then
MsgBox ("Traitement annulé !!!")
Exit Sub
End If
Sheets("pj").Range("B8", "F17").ClearContents
numéro = numéro * 1
lignerecopie = 8
i = 2
Do While i < Range("A" & Rows.Count).End(xlUp).Row + 1
If Range("A" & i).Value = numéro Then
Sheets("pj").Range("B" & lignerecopie).Value = Range("J" & i).Value
Sheets("pj").Range("C" & lignerecopie, "D" & lignerecopie).Value = Range("D" & i, "E" & i).Value
Sheets("pj").Range("D" & lignerecopie) = Format(Sheets("pj").Range("D" & lignerecopie), "hh:mm")
Sheets("pj").Range("E" & lignerecopie, "F" & lignerecopie).Value = Range("G" & i, "H" & i).Value
Sheets("pj").Range("F" & lignerecopie) = Format(Sheets("pj").Range("F" & lignerecopie), "hh:mm")
lignerecopie = lignerecopie + 1
End If
i = i + 1
Loop

'
End Sub

Merci de me confirmer la validité de ma proposition
Dans cette alternative n’oublies pas de la valider un petit plus trés sympathique

merci encore pour ton aide, mais j’ai dû mal m’exprimer, j’aurai souhaité un userform qui se lance à l’activation de l’onglet pj et à renseigner avec un numéro d’ordre. Ensuite toujours sur l’onglet pj j’ai besoin qu’autant de ligne que nécessaire s’ajoute en fonction du nombre de ligne trouvée dans l’onglet données et qui correspond au numéro d’ordre.
classeur1.xlsm (26,1 Ko)
Merci pour le coup de main

Bonjour

Quelle plus value d’un formulaire sur le bouton que je te propose pour un même résultat ?

« Ensuite toujours sur l’onglet pj j’ai besoin qu’autant de ligne que nécessaire s’ajoute en fonction du nombre de ligne trouvée dans l’onglet données et qui correspond au numéro d’ordre. »

Ce n’est pas le resultat obtenu ???

Que manque t-il ???

1 « J'aime »

Bonjour,
Le fichier envoyé n’est pas le vrai fichier qui me pose problème, juste une version modifiée basiquement mais qui du coup ne montre pas que la page pj à des infos partout et est amené à être imprimé donc dans la mesure du possible je préfère un userform. D’autre sous les infos à collées il y a d’autre données à ne pas modifier, donc coller les données en insertion de cellules m’arrangerais.

Merci encore

Un userforme quelque soit le contexte ne sera jamais de nature à être plus performant qu’un bouton si celui-ci engendre le même résultat avec le même préambule celui de récupérer une donnée fourni par l’utilisateur
Un formulaire est beaucoup plus lourd en terme de fonctionnement avec une structure qui lui est propre qu’il faut construire et tout un environnement pour le faire vivre
Il est interressant à utiliser en présence de beaucoup de données de différents onglets pour réunir l’ensemble par son biais et de les orchestrer
Ce n’est certainement pas ton cas
La simple utilisation d’un bouton répond largement à ton besoin exprimé et ce dans la plus grande simplicité il est donc bien plus préférable

Tu ne m’as toujours pas dit si avec le fichier que j’ai adapté le résultat par l’action de ce bouton etait celui attendu

Pour le reporter dans un autre fichier ce dernier doit être pour les onglets utilisés ( « donnees » et « pj ») à l’exact identique quand à leur structure seules les données peuvent varier le bouton lui devant être intégré dans l’onglet « donnees »
Il en serait de même avec un userform avec en plus sa mise en place à effectuer ce qui n’est pas d’une grande simplicité

« D’autre sous les infos à collées il y a d’autre données à ne pas modifier, donc coller les données en insertion de cellules m’arrangerais »

Il me faut un exemple pour comprendre et être plus précis qu’en à l’insertion à effectuer

Un fichier au plus proche du définitif sans donnée confidentielle serait fortement souhaitable pour bien repondre à ta demande

Bonjour ! Merci beaucoup pour l’explication. Je teste sur le vrai fichier et te tiens au courant.
Merci encore de ton aide

Re,
Du coup je suis totalement convaincue par l’explication du bouton vs le userform :slight_smile: .
S’agissant du code à proprement parlé:

  • le traitement copie/colle les infos d’un onglet à l’autre alors que j’aurai souhaité qu’il copie puis insère dans l’autre onglet. histoire de garder les cellules de visa situées en dessous.
  • le .ClearContents nettoie les infos sur une plage défini mais si j’ai des données sur des lignes qui ne sont pas dans cette plage, l’effacement n’est pas total… je ne sais pas s’il est possible de ne pas avoir cette problématique…
  • la partie ouvrant le message box impose de rentrer un n° d’ordre mais si je rentre un n° inconnu rien ne se passe, serait il possible d’avoir un message box disant que les éléments n’existe pas?
    Curiosité: numéro = numéro * 1 → je ne comprends pas, tu veux bien m’expliquer s’il te plaît
    D’autre part j’ai des difficultés à créer un bouton qui ouvre un fichier word dans le même dossier sans faire d’hyperlien ou sans cité le chemin d’accès, est ce possible? dois je ouvrir un autre post? je crains que les chemins d’accès soient modifié alors que les fichiers eux resteront dans le même dossier.
    Merci, bonne soirée :wink:

Bonjour
Je ne suis pas chez moi actuellement je rentre Mardi soir
Je regarde dès que possible et te dis
Je souhaiterai un fichier au plus proche de celui definitif il en va de la qualité de ce que je peux te proposer celui que tu m’a donné est trop simplifié je suppose et donc je peux difficilement comprendre le besoin à fournir
Merci

Bonsoir,
Voici une version très réaliste en forme du fichier pour lequel je sollicite le savoir faire du forum.
Du coup il s’agit que le bouton traitement implémente sur l’onglet pj les lignes correspondant au n° d’ordre renseigné dans la box.
J’ai rajouté plusieurs lignes pour un même n° d’ordre afin de comprendre qu’il faut insérer les lignes dans la pj…
Par ailleurs, est il possible de renseigner la colonne imputation par BBBBB dès que le nom de quelqu’un est collé?
Désolée si je ne suis toujours pas claire…Merci encore
Classeur1.xlsm (27,5 Ko)

Bonjour

Ton fichier ci-joint avec les nouvelles consignes

« Curiosité: numéro = numéro * 1 → je ne comprends pas, tu veux bien m’expliquer s’il te plaît »

Le numéro saisi par l’utilisateur est pour Excel au format texte
Par cette ligne de code je le transforme en format nombre nécessaire pour le retrouver dans la colonne A car dans cette colonne toutes les données sont des nombres

"D’autre part j’ai des difficultés à créer un bouton qui ouvre un fichier word dans le même dossier sans faire d’hyperlien ou sans cité le chemin d’accès, est ce possible? "

Peux tu me détailler ton attente de manière plus explicite je ne vois pas ce que tu souhaites mettre en place

Testes le fichier et dis moi

Classeur1.xlsm (28,3 Ko)

Bonjour, désolée pour le délai de retour, un peu dépassée… bref merci beaucoup pour ton aide c’était exactement ce dont j’avais besoin. Je « nettoierai » les lignes du fichier après chaque impression.
À force de fouiner sur les forum j’ai aussi pu me dépatouiller avec un code qui ouvre un fichier word dans le même dossier que mon Excel.
Sur la base déjà faite, je dois (petite nouveauté que je viens d’apprendre) copier/insérer d’autres cellules de l’onglet donnée dans un enieme fichier Excel qui lui n’est pas dans le classeur…. Je pensais reprendre ce que tu m’avais fourni et bidouiller un truc mais pas si simple pour moi…. Pourrais je avoir encore un coup de main s’il te plaît

Bonjour
Merci pour ton retour positif donc
Si ma proposition te conviens tu voudras bien la valider un petit plus bien agréable
Pour ta dernière demande :

« copier/insérer d’autres cellules de l’onglet donnée dans un enieme fichier Excel qui lui n’est pas dans le classeur »

Il me faudrait plus de précision notamment sur le fichier cible :

« dans un enieme fichier Excel qui lui n’est pas dans le classeur »

Peux tu me dresser tout le contexte de ce copier/coller :

source (fichier onglet cellule(s))
cible (fichier onglet cellule(s) de destination)

Un exemple de ces 2 fichiers sans donnée confidentielle me serait bien utile

Dans l’attente de tous ces compléments

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.