Excel/macro/aide insertion ligne vers bas/code possible ??
Dernière réponse : dans Programmation
Bonjour,
Je suis à créer un formulaire de suivi en Excel et j’ai inséré des menus déroulants pour les choix de réponse. J’ai aussi créé une macro qui permet d’ajouter une ligne supplémentaire ainsi qu’un menu déroulant.
Le problème : mes ajouts se font vers le haut alors que j’aimerais que le tout reste chronologique donc que les ajouts se fassent vers le bas. Voici ce que visual basic me donne comme code de la macro que j’ai fait :
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 11-02-2008 par jbourque
'
'
Rows("17:17").Select
Selection.Insert Shift:=x1down
ActiveSheet.DropDowns.Add(2.25, 303.75, 188.25, 18).Select
With Selection
.ListFillRange = "Données!$A$2:$A$15"
.LinkedCell = ""
.DropDownLines = 15
.Display3DShading = False
End With
End Sub
Pouvez-vous me dire s’il y a un code qui serait possible d’insérer pour que mes menus/lignes supplémentaires s’ajoutent vers le bas ??
Merci beaucoup pour votre aide dans mon apprentissage !!!!
Je suis à créer un formulaire de suivi en Excel et j’ai inséré des menus déroulants pour les choix de réponse. J’ai aussi créé une macro qui permet d’ajouter une ligne supplémentaire ainsi qu’un menu déroulant.
Le problème : mes ajouts se font vers le haut alors que j’aimerais que le tout reste chronologique donc que les ajouts se fassent vers le bas. Voici ce que visual basic me donne comme code de la macro que j’ai fait :
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 11-02-2008 par jbourque
'
'
Rows("17:17").Select
Selection.Insert Shift:=x1down
ActiveSheet.DropDowns.Add(2.25, 303.75, 188.25, 18).Select
With Selection
.ListFillRange = "Données!$A$2:$A$15"
.LinkedCell = ""
.DropDownLines = 15
.Display3DShading = False
End With
End Sub
Pouvez-vous me dire s’il y a un code qui serait possible d’insérer pour que mes menus/lignes supplémentaires s’ajoutent vers le bas ??
Merci beaucoup pour votre aide dans mon apprentissage !!!!
Autres pages sur : excel macro aide insertion ligne vers bas code possible
Lassé par la pub ? Créez un compte
Hello,
Pour calculer rapidement la derniere ligne d'une liste :
Range("A1").select
Dim LigneVide as integer
LigneVide = ActiveCell.SpecialCells(xlLastCell).Select +1
Il te suffit ensuite de faire un :
Dim Plage as string
Plage = LigneVide & ":" & LigneVide
et reprendre a ce niveau de ton code :
Rows(Plage).Select
A++
Nico
Pour calculer rapidement la derniere ligne d'une liste :
Range("A1").select
Dim LigneVide as integer
LigneVide = ActiveCell.SpecialCells(xlLastCell).Select +1
Il te suffit ensuite de faire un :
Dim Plage as string
Plage = LigneVide & ":" & LigneVide
et reprendre a ce niveau de ton code :
Rows(Plage).Select
A++
Nico
Bonjour Nico,
voici le ce que j'ai insérer et qui me produit un message d'erreur (erreur d'exécution 13 / incompatibilité type):
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 11-02-2008 par jbourque
'
'
Range("A1").Select
Dim LigneVide As Integer
LigneVide = ActiveCell.SpecialCells(xlLastCell).Select + 1
Dim Plage As String
Plage = LigneVide & ":" & LigneVide
Rows("plage").Select
Selection.Insert Shift:=x1down
ActiveSheet.DropDowns.Add(2.25, 303.75, 188.25, 18).Select
With Selection
.ListFillRange = "Données!$A$2:$A$15"
.LinkedCell = ""
.DropDownLines = 15
.Display3DShading = False
End With
End Sub
voici le ce que j'ai insérer et qui me produit un message d'erreur (erreur d'exécution 13 / incompatibilité type):
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 11-02-2008 par jbourque
'
'
Range("A1").Select
Dim LigneVide As Integer
LigneVide = ActiveCell.SpecialCells(xlLastCell).Select + 1
Dim Plage As String
Plage = LigneVide & ":" & LigneVide
Rows("plage").Select
Selection.Insert Shift:=x1down
ActiveSheet.DropDowns.Add(2.25, 303.75, 188.25, 18).Select
With Selection
.ListFillRange = "Données!$A$2:$A$15"
.LinkedCell = ""
.DropDownLines = 15
.Display3DShading = False
End With
End Sub
Hello,
Arf, sorry ... Une erreur de ma part.
Je m'explique. En fait, on récupérait l'objet active cell alors qu'on ne souhaite récupérer que la ligne associée.
La ligne est dénommée Row donc :
Dim LigneVide As Integer
' Je me déplace a la derniere cellule de mon tableau
' Equivalent de la fonction Ctrl+Fin dans excel
ActiveCell.SpecialCells(xlLastCell).Select
' Je récupère la ligne asociée
LigneVide = activecell.row + 1
' Je construis une plage par rapport a cette "dernière" ligne
Dim Plage As String
Plage = LigneVide & ":" & LigneVide
Rows(plage).Select
Selection.Insert Shift:=x1down
Bon courage
a+
Nico
Arf, sorry ... Une erreur de ma part.
Je m'explique. En fait, on récupérait l'objet active cell alors qu'on ne souhaite récupérer que la ligne associée.
La ligne est dénommée Row donc :
Dim LigneVide As Integer
' Je me déplace a la derniere cellule de mon tableau
' Equivalent de la fonction Ctrl+Fin dans excel
ActiveCell.SpecialCells(xlLastCell).Select
' Je récupère la ligne asociée
LigneVide = activecell.row + 1
' Je construis une plage par rapport a cette "dernière" ligne
Dim Plage As String
Plage = LigneVide & ":" & LigneVide
Rows(plage).Select
Selection.Insert Shift:=x1down
Bon courage
a+
Nico
Bonjour Nico,
Merci pour ton aide et surtout ta patience. Malheureusement cela ne fonctionne toujours pas lorsque j'appuie sur le bouton lié à ma macro, il n'y a pas de ligne vierge qui s'insère au dessous et qui décale mes données plus bas....mon menu se crée sur mon menu déjà existant.
Est-ce que tu aurais un mail que je t'envoie le fichier ou le print screen de mon formulaire ?
Je peux comprendre si tu n'as pas le temps de m'aider davantage....
Merci pour ton aide et surtout ta patience. Malheureusement cela ne fonctionne toujours pas lorsque j'appuie sur le bouton lié à ma macro, il n'y a pas de ligne vierge qui s'insère au dessous et qui décale mes données plus bas....mon menu se crée sur mon menu déjà existant.
Est-ce que tu aurais un mail que je t'envoie le fichier ou le print screen de mon formulaire ?
Je peux comprendre si tu n'as pas le temps de m'aider davantage....
Salut à tous
Il me semble que le problème vient de cette instruction:
ActiveSheet.DropDowns.Add(2.25, 303.75, 188.25, 18).Select
Ici, la position de la liste déroulante est indiquée explicitement avec des valeurs absolues. Si on veut que la nouvelle liste soit décalée par rapport à la précédente, il faut déterminer la hauteur de la ligne ajoutée et le nombre de lignes entre les deux.
Ceci fait, l'instruction suivante devrait t'aider:
Selection.ShapeRange.IncrementTop HauteurLigne * NbLignes
Est-ce que c'est mieux ?
Bonne continuation
Il me semble que le problème vient de cette instruction:
ActiveSheet.DropDowns.Add(2.25, 303.75, 188.25, 18).Select
Ici, la position de la liste déroulante est indiquée explicitement avec des valeurs absolues. Si on veut que la nouvelle liste soit décalée par rapport à la précédente, il faut déterminer la hauteur de la ligne ajoutée et le nombre de lignes entre les deux.
Ceci fait, l'instruction suivante devrait t'aider:
Selection.ShapeRange.IncrementTop HauteurLigne * NbLignes
Est-ce que c'est mieux ?
Bonne continuation
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumMacro excel insertion ligne
- ForumMacro insertion ligne excel
- ForumMacro excel ralenti apres insertion ligne vb
- ForumVba excel aide insertion commentaires macro
- solutionsExcel macro insertion image
- ForumInsertion bouton excel avec macro
- ForumExcel macro insertion date heure
- ForumExcel macro insertion d'une image
- ForumInsertion fichiers pdf dans excel par macro
- solutionsMacro excel insertion de lignes
- Voir plus
( non j'ai toujours le même message d'erreur....