Dans un extrait de mon fichier, je vous joins mon problème que j’essaie de résoudre par une commande VBA.
Après une série de calculs j’obtiens des résultats en colonnes :
- J pour un horaire
- K pour un Lieu
pour une construction des colonnes B-C-D :
- le nombre de fois que les valeurs de Col J et K
- (J a des formules qui y restent, alors B n'en aura pas dans la recopie)
- seront reproduites SANS Formules en colonne B
- "x fois répété" selon le chiffre de colonne L,
- ce dernier donnant un chiffre croissant, en colonne C, limité par la valeur de colonne L.
Au fur et à mesure que les colonnes B et C se « construisent » avec la commande VBA, le chiffre progressif apparît en colonne D devant chaque Lieu+Horaire voisins.
Actuellement l’horaire n’apparait plus à un moment car, dans mon transfert, mes formules transférées en colonne B me donnent n’importe quoi en résultat.
Pouvez-vous m’aider à corriger mes lignes de codes ?
Vous remarquerez que j’ai fait plusieurs essais de codification qui n’aboutissent pas correctement.
Merci,
Webperegrino
Pièces jointes
Essai de duplication dans le transfert (copié-collé) de 2 colonnes.xlsm
Le Forum,
Bonjour Fana38.
Merci de vous être penché sur mon souci.
J'ai modifié le fichier pour qu'il soit plus proche de mon application réelle (les transferts de la ligne 4 de droite se font aussi à gauche en ligne 4, ce qui semble simplifier les duplications).
. J'ai donc fait passer Lig en 4 (au lieu de 3).
. J'ai ajouté une formule de comptage en colonne A.
. J'ai aussi placé la formulation dans la colonne L pour faire complet par rapport à mon dossier destination.
. Cette formulation devant rester en place jusqu'à la ligne 105... je craignais que vos codes ne fonctionnent pas.
Avec ces ajouts, votre codification semble fonctionner à merveille !
Cela me convient parfaitement.
Si vous voulez jeter un coup d'œil au fichier rectificatif ci-joint, merci de voir si cela peut encore être simplifié.
Mais votre première proposition est déjà géniale et me convient parfaitement.
Reste à savoir si cela va fonctionner dans ma grosse application de 12 Mo.
Merci Fafa38,
Webperegrino
Pièces jointes
Duplication dans le transfert (copié-collé) de 2 colonnes (V2_0).xlsm
Le Forum,
Re-Fanfan38,
Vos codes du #2, adaptés à ma grosse application, fonctionnent parfaitement.
C'est magique.
Je vous vous renouvelle mes remerciements.
Ça va être un plaisir de faire les saisies.
J'ai un bouton qui applique ceci, mais qui me donne des 'barrières à l'enregistrement'.
Il me faut passer outre et imposer l'enregistrement alors qu'un export PDF se fait parfaitement.
VB:
Dim Fichier As String
[F1].ClearContents: Application.Goto [A1], Scroll:=True
Application.ScreenUpdating = False
Fichier = [G1] & " • FICHE JOURNALIERE du " & Format([B2], "dddd d mmm") & ".xlsx"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Fichier
Application.ScreenUpdating = True
[F1] = "Export exécuté !"
En effet, voulant enregistrer en simple feuille Excel, sans les macros, sans les boutons que j'ai sur la feuille d'origine (bouton de retour au menu, d'export .PDF, d'export .xlsx....), j'ai un message qui m'avertit que je dois cliquer sur Oui pour continuer à enregistrer sans macro.
Je pensais que mes lignes ci-dessus allaient faire tout cela plus simplement.
Peut-être faut-il mettre & ".xls" et non & ".xlsx" ?
Avez-vous une piste à me proposer ?
Je ne vous dérangerai plus ensuite.
Merci Fanfan38,
Et dans l'export puis-je aussi imposer une limitation de la feuille en contenu, par exemple [A2:G38], comme j'arrive à le faire pour un export PDF ?
Ou c'est toute la feuille qui sera retranscrite (avec les formules dans les cellules, alors que je désire seulement une feuille Excel avec format, couleurs, polices identiques, mais pas de formules dans le cellules, seulement leurs valeurs).
Je ne sais vraiment pas si cela peur se faire.
... cela s'enregistre sous nom [xlsm.xlsx] : " • FICHE JOURNALIERE du dimanche 6 aoûtxlsm.xlsx", et de façon identique (toute la feuille, toutes les formules, tous les boutons.
En XLSX tu n'as pas les macros c'est ou xlsm ou xlsb....
Pour enregistrer sans les macros, formule, etc.... Je ne sais Pas non plus.
Ce que tu peux faire c'est enregistrer ton fichier
Ensuite copier les colonnes A à D sur une autre feuille ou effacer les autres colonnes et ensuite enregistrer sous... xlsx
Fanfan38,
Ton idée m'est arrivée en quantique quand j'étais sur le fichier sauvegardé en .xlsm (et non en oubliant le point avant xlsm !!! Grave erreur de ma part).
J'ai trouvé une parade "Manuelle" :
- activer le développeur sélection de chaque bouton et supprimé (puisqu'il n'y a plus une seule macro annexée)
- sélectionner toute la feuille qui contient encore les formules + Copier + Coller SEULEMENT les valeurs... et ça fonctionne.
- il me reste à sélectionner toutes les colonnes superflues et enfin choisir "supprimer".
Et ça me fait une feuille exploitable par le destinataire sans formule, bouton colonnes inutiles.
Je n'ai pas mieux, mais ça donne un "joôoli export" apparemment identique à la feuille du classeur d'origine.
Merci encore Fanfan38,
Bon week-end (et bon apéro qui s'en vient).
Mission accomplie grâce à vous,
Webperegrino
Le Forum,
Re-Bonjour Fanfan38,
Je reviens ici pour vous confirmer que votre solution marche à merveille dans mon application réelle.
Vos lignes de codes VBA ont permis, en bénévolat, de réaliser un énorme travail demandé en toute urgence pour une Association. Tout s'est bien déroulé grâce à votre aide et je viens à nouveau vous remercier.
Voilà mon fichier bien huilé pour la suite.
Bravo Fanfan38, je vous souhaite du beau soleil sur Morestel.
Webpregrino