Excel 07 Macro Explication
Résolu/Fermé
A voir également:
- Excel 07 Macro Explication
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
2 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
644
26 mars 2009 à 19:03
26 mars 2009 à 19:03
RE Bonjour,
Comme l'avait suggéré Polux31 dans l'autre topic, je te propose une écriture plus compacte de ta macro. Elle fait la même chose :
On évite ainsi les select en trop qui ralentissent Excel
Bonne continuation .
A+
Comme l'avait suggéré Polux31 dans l'autre topic, je te propose une écriture plus compacte de ta macro. Elle fait la même chose :
Sub transpose_dans_tableau() Sheets("Formulaire").Range("B1:B4").Copy Sheets("Base_de_données").Select If Range("A2").Value = "" Then Range("A2").Select Else Range("A" & Range("A1").End(xlDown).Row + 1).Select End If Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=True Sheets("Formulaire").Range("B1:B4").ClearContents Range("A1").Select End Sub
On évite ainsi les select en trop qui ralentissent Excel
Bonne continuation .
A+
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
644
26 mars 2009 à 18:39
26 mars 2009 à 18:39
Bonjour,
Voici une explication pour tes lignes
'Initialise la variable valeurA2 avec la valeur de la cellule A2 de la feuille Base_de _données
valeurA2 = Sheets("Base_de_données").Range("A2").Value
If valeurA2 = "" Then 'teste si la valeur est vide
Range("A2").Select ' si elle est vide selectionne la cellule A2
Else
Range("A1").Select ' si elle n'est pas vide selectionne la cellule A1
'cherche vers le bas (à partir de A1) la dernière cellule non vide (par exemple A9):
Selection.End(xlDown).Select
ligne_active_Base_de_données = ActiveCell.Row 'mémorise le numéro de la ligne (par exemple 9)
Range("A" & ligne_active_Base_de_données + 1).Select 'selectionne la cellule suivante (exemple A10)
' remarque & est l'opérateur de concaténation ici il assemble la lettre A et le numéro de ligne+1
End If
'( remarque : ici il manque du code par rapport à ton autre topic)
Range("A" & ligne_active_Base_de_données).Select 'toujours pareil selectionne la cellule
' on colle à partir de la cellule selectionnée (ce qui a été copié par exemple la colonne B1:B4 de la feuille formulaire)
' en faisant une transposition (la colonne devient une ligne):
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
A+
Voici une explication pour tes lignes
'Initialise la variable valeurA2 avec la valeur de la cellule A2 de la feuille Base_de _données
valeurA2 = Sheets("Base_de_données").Range("A2").Value
If valeurA2 = "" Then 'teste si la valeur est vide
Range("A2").Select ' si elle est vide selectionne la cellule A2
Else
Range("A1").Select ' si elle n'est pas vide selectionne la cellule A1
'cherche vers le bas (à partir de A1) la dernière cellule non vide (par exemple A9):
Selection.End(xlDown).Select
ligne_active_Base_de_données = ActiveCell.Row 'mémorise le numéro de la ligne (par exemple 9)
Range("A" & ligne_active_Base_de_données + 1).Select 'selectionne la cellule suivante (exemple A10)
' remarque & est l'opérateur de concaténation ici il assemble la lettre A et le numéro de ligne+1
End If
'( remarque : ici il manque du code par rapport à ton autre topic)
Range("A" & ligne_active_Base_de_données).Select 'toujours pareil selectionne la cellule
' on colle à partir de la cellule selectionnée (ce qui a été copié par exemple la colonne B1:B4 de la feuille formulaire)
' en faisant une transposition (la colonne devient une ligne):
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
A+
26 mars 2009 à 21:38
Génial!! Cela me plait vraiment que tu m'ai proposé une macro plus compacte car l'autre macro fonctionne; tu pouvais très bien laisser comme tel.
J'apprécie cette macro car moi aussi j'aime bien faire simple au lieu de ce compliquer la vie, pour le même résultat .
Bravo. A+ ;o)