Pour thautheme
Fermé
DD4477
-
16 déc. 2016 à 09:42
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 19 déc. 2016 à 13:48
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 19 déc. 2016 à 13:48
7 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
16 déc. 2016 à 10:33
16 déc. 2016 à 10:33
Bonjour
Probablement avec UsedRange !
Probablement avec UsedRange !
fonction inconnue de Excel, merci quand même
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
16 déc. 2016 à 11:48
16 déc. 2016 à 11:48
Ah bon? https://docs.microsoft.com/fr-fr/office/vba/api/excel.worksheet.usedrange?redirectedfrom=MSDN
UsedRange, copier la plage et coller spécial (transposée) en feuille 3. Utilise l'enregistreur de macro pour obtenir la syntaxe.
UsedRange, copier la plage et coller spécial (transposée) en feuille 3. Utilise l'enregistreur de macro pour obtenir la syntaxe.
J'ai essayé mais c'est pas encore ca :
Sub TRANSFO()
'
' TRANSFO Macro
'
'
'Worksheets("Sheet1").Activate
ActiveSheet.UsedRange.Select
Application.Run "'traitement automatique générique.xlsm'!transposée"
Application.CutCopyMode = False
Application.Run "'traitement automatique générique.xlsm'!Feuil3.DelLigne"
End Sub
Sub transposée()
'
' transposée Macro
'
'
'Sheets("Feuil1").Select
'ActiveWindow.LargeScroll ToRight:=-4
Selection.Copy
Sheets("Feuil3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub
Sub TRANSFO()
'
' TRANSFO Macro
'
'
'Worksheets("Sheet1").Activate
ActiveSheet.UsedRange.Select
Application.Run "'traitement automatique générique.xlsm'!transposée"
Application.CutCopyMode = False
Application.Run "'traitement automatique générique.xlsm'!Feuil3.DelLigne"
End Sub
Sub transposée()
'
' transposée Macro
'
'
'Sheets("Feuil1").Select
'ActiveWindow.LargeScroll ToRight:=-4
Selection.Copy
Sheets("Feuil3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
16 déc. 2016 à 16:00
16 déc. 2016 à 16:00
Re,
Simplement :
Simplement :
Option Explicit Public Sub TRANSFO() Worksheets("Feuil1").UsedRange.Copy Worksheets("Feuil3").[A1].PasteSpecial xlPasteAll, , , True Application.CutCopyMode = False End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un grand merci à tous :
j'avais pensé selectionner toute la feuille 1 et faire une copie mais il refusait le trop grand nombre de colonnes et lignes
je me suis inspiré de ton code pour écrire cela qui n'est pas tres different :
Worksheets("Feuil1").UsedRange.Copy
Sheets("Feuil3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ce qui permet en effet de selectionner toutes les donnees à la souris avant de proceder à la transposee.
Si je peux me permettre de te poser un autre question au sujet de ton code:
A quoi cela sert il de preceder le sub <fonction> par public et aussi par option explicit ?
j'avais pensé selectionner toute la feuille 1 et faire une copie mais il refusait le trop grand nombre de colonnes et lignes
je me suis inspiré de ton code pour écrire cela qui n'est pas tres different :
Worksheets("Feuil1").UsedRange.Copy
Sheets("Feuil3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ce qui permet en effet de selectionner toutes les donnees à la souris avant de proceder à la transposee.
Si je peux me permettre de te poser un autre question au sujet de ton code:
A quoi cela sert il de preceder le sub <fonction> par public et aussi par option explicit ?
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 19/12/2016 à 10:24
Modifié par Patrice33740 le 19/12/2016 à 10:24
Bonjour,
Public défini la portée du code contenu dans un module : il est visible de l'ensemble des projets ouverts et donc utilisable depuis tous leurs modules. On peut limiter cette portée aux modules du projet qui contient le code, et donc interdire son emploi depuis les autres projets ouverts, en ajoutant Option Private Module au début du module concerné.
Option Explicit, toujours placé en début de module, rend obligatoire la déclaration de toutes les variables utilisées dans ce module. Lorsque cette instruction est omise, les variables sont déclarées de manière implicite lors de leur première utilisation, cela réserve souvent des surprises lors de l'exécution du code, notamment des erreurs du genre "Incompatibilité de type". Toujours commencer tous ses modules par Option Explicit est une excellente méthode qui évite ces problèmes et rend le code plus compréhensible.
La touche F1 : en utilisant l'éditeur visual basic, lorsqu'on place le curseur texte sur un mot dans le code , permet d'obtenir l'aide sur ce mot. Assez complet, cet aide t'aurais donné les renseignements demandés !
Cordialement
Patrice
Public défini la portée du code contenu dans un module : il est visible de l'ensemble des projets ouverts et donc utilisable depuis tous leurs modules. On peut limiter cette portée aux modules du projet qui contient le code, et donc interdire son emploi depuis les autres projets ouverts, en ajoutant Option Private Module au début du module concerné.
Option Explicit, toujours placé en début de module, rend obligatoire la déclaration de toutes les variables utilisées dans ce module. Lorsque cette instruction est omise, les variables sont déclarées de manière implicite lors de leur première utilisation, cela réserve souvent des surprises lors de l'exécution du code, notamment des erreurs du genre "Incompatibilité de type". Toujours commencer tous ses modules par Option Explicit est une excellente méthode qui évite ces problèmes et rend le code plus compréhensible.
La touche F1 : en utilisant l'éditeur visual basic, lorsqu'on place le curseur texte sur un mot dans le code , permet d'obtenir l'aide sur ce mot. Assez complet, cet aide t'aurais donné les renseignements demandés !
Cordialement
Patrice
Merci beaucoup, si ces infos viennent d'un manuel, puis-je en avoir les références ? je reconnais tout à fait mes erreurs mais apprends vite et bien !
Certaines fonctions Excel donnent des résultats erronés comme RECHERCHEV
et je pense qu'en ayant le bon manuel, je saurais trouver l'origine de l'erreur, je suis allé sur le forum Microsoft mais en appliquant à la lettre j'ai le fameux N/A alors que la valeur recherchee dans deux tableaux differents sont identiques et de meme format. Evidemment, en specifiant le parametre VRAI, j'ai une valeur de retour non voulue. Pour essayer de comprendre le resultat obtenu, j'ai changé le numero de colonne mais c'est completement à proximatif là où je n'attends qu'une seule valeur.
Merci et bonne journée.
Certaines fonctions Excel donnent des résultats erronés comme RECHERCHEV
et je pense qu'en ayant le bon manuel, je saurais trouver l'origine de l'erreur, je suis allé sur le forum Microsoft mais en appliquant à la lettre j'ai le fameux N/A alors que la valeur recherchee dans deux tableaux differents sont identiques et de meme format. Evidemment, en specifiant le parametre VRAI, j'ai une valeur de retour non voulue. Pour essayer de comprendre le resultat obtenu, j'ai changé le numero de colonne mais c'est completement à proximatif là où je n'attends qu'une seule valeur.
Merci et bonne journée.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 19/12/2016 à 13:50
Modifié par Patrice33740 le 19/12/2016 à 13:50
Ces informations proviennent de l'aide VBA (la touche F1). Edit :F1 fonctionne aussi avec Excel et avec pratiquement tous les programmes.
N/A n'est pas a proprement dit une erreur mais une réponse de la recherche pour dire "je n'ai pas trouvé"
N/A n'est pas a proprement dit une erreur mais une réponse de la recherche pour dire "je n'ai pas trouvé"