Comment sélectionner/copier/coller une plage de résultat d'un TCD?

Résolu/Fermé
Fanfoue58 Messages postés 3 Date d'inscription mercredi 5 février 2020 Statut Membre Dernière intervention 11 février 2020 - 5 févr. 2020 à 15:20
Fanfoue58 Messages postés 3 Date d'inscription mercredi 5 février 2020 Statut Membre Dernière intervention 11 février 2020 - 5 févr. 2020 à 17:13
Bonjour,
J'utilise Excel 365, je débute DIFFICILEMENT sur les macros, j'ai déjà créer une 15zaine de boutons et je bute, malgré des heures de recherche, sur comment :
. recopier et coller ailleurs la plage de cellules provenant d'une extraction d'un TCD (plusieurs lignes et plusieurs colonnes), nombre de colonne fixe, lignes nombre aléatoire en fonction du/des critères d'extraction.
En effet les lignes extraites ne sont pas numérotées de façon continue et démarre par exemple à la ligne 65 alors que ma barre de titre juste au-dessus est en ligne 5.

Au secours, merci d'avance,

Configuration: Macintosh / Safari 13.0.5

3 réponses

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
5 févr. 2020 à 16:57
entre-temps, ayant lu que tu démarrais la programmation pour te détendre, je suggère que tu fasses des petits programmes d'essai en VBA, dans Excel.
Des petits programmes qui te permettront d'apprendre la logique de programmation, et le langage VBA, sans t'embrouiller avec Excel lui-même et tout ce qu'un utilisateur peut faire dans Excel.
par exemple, faire une programme qui cherche le plus grand nombre présent dans un carré de 10 lignes sur 10 colonnes, dans une feuille Excel, et qui écrive ce nombre en bas à droite du tableau.
1
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
5 févr. 2020 à 16:47
bonjour,
si tu écris en VBA, tu peux décider comment tu programmes le transfert des données.
les débutants en VBA essaient souvent de "copier" ce que l'utilisateur fait avec Excel (par exemple sélectionner/copier/coller), alors qu'il est souvent préférable d'oublier ce qu'Excel offre comme possibilité à l'utilisateur, et de se demander comment automatiser le travail, comme un petit robot qui peut explorer et changer les données, sans passer par Excel.
le programme peut explorer le TCD, et pourrait, cellule par cellule, recopier les valeurs vers la destination.
peut-être pourrions-nous être plus concret si tu partages ton fichier.
0
Fanfoue58 Messages postés 3 Date d'inscription mercredi 5 février 2020 Statut Membre Dernière intervention 11 février 2020
5 févr. 2020 à 17:13
Merci pour ta rapidité,
En fait passer le tableau me parait compliqué parce qu'il :
. Saisie en ligne d'une commande client complète avec environ 25 colonnes de champs (Pour extraction et analyse)
. qu'au bout des ligne de saisie, donc sur la même ligne, j'ai mis en page et structuré les infos des colonnes précédentes au format d'une facture type, et d'un formulaire type pour des remises sous-traitants, afin les les imprimer, les sauvegarder avec implémentation d'une ligne, puis de les envoyer par email au client et/ou sou-traitants.
Donc lors d'une extraction client par exemple, sur la colonne client, j'obtiens touts ses lignes de facturation, en revanche avec des numéros de lignes ne se suivants pas, car je saisie commande après commande avec comme critère clef pour moi l'heure de la commande.
Mon pb était de récupérer ce paquet de cellules pour le copier dans une autre feuille excel où se trouve un formulaire de facture vertical et un formulaire de facture horizontal, à compléter par collage special du précédent copier, et de l'imprimer en fonction des désirs clients (vertical oui horizontal)!
Je m'en suis sorti en faisant le bout de code suivant en copiant la ligne de titres de la base, avec ses lignes extraites dessous, en la collant donc aussi dans la facture en première ligne, puis en effaçant cette premiere ligne avant validation du transfert des lignes, pout impression (un autre bouton)


Sub Facture_lignes_collagespecial()
'
' Facture_lignes_collagespecial Macro
'

'
Windows("2020-Comptes.xlsm").Activate
Application.Goto Reference:="FACTURE_TCD"
Range("FACTURE_LIBELLES", Selection.End(xlDown)).Select
Selection.Copy
Windows("2019-Facturation.xlsm").Activate
Application.Goto Reference:="facture_vcollerspecial"
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.Goto Reference:="facture_Hcollerspecial"
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.Goto Reference:="FACTURE_HLIBELLES"
Selection.ClearContents
Application.Goto Reference:="FACTURE_VLIBELLES"
Selection.ClearContents
Sheets("FACT-INV Vert").Select
Range("AC9:AC10").Select
MsgBox "LignesFACTURE copiées"


End Sub
0