Tom's Guide > Forum > Programmation > Excel/macro/aide insertion ligne vers bas/code possible ??

Excel/macro/aide insertion ligne vers bas/code possible ??

Forum Programmation : Excel/macro/aide insertion ligne vers bas/code possible ??

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 !!!!

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

------------------------------ Mon boss me dit : j'ai besoin d'un mec efficace, rapide, intelligent pas cher !
Je lui ai répondu : embauchez moi et je vous aiderai a le trouver !!
Répondre à leghola

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

Répondre à zazouy

Hello, :hello:

non non :)
tu as mal lu.

ce n'est pas
Rows("Plage" ).Select
mais
Rows(Plage).Select
Sans guillemets.

Tu vas voir ca va fonctionner. :D

A+
NIco

Répondre à leghola

:O( non j'ai toujours le même message d'erreur....

Répondre à zazouy

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

------------------------------ Mon boss me dit : j'ai besoin d'un mec efficace, rapide, intelligent pas cher !
Je lui ai répondu : embauchez moi et je vous aiderai a le trouver !!
Répondre à leghola

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....

Répondre à zazouy

Hello,

Envoie moi tout ca sur leghola45 AT gmail DOT com avec ce que tu souhaites faire précisément.. Je ne pense pas avoir correctement compris ce que tu souhaitais :)

A++
Nico

------------------------------ Mon boss me dit : j'ai besoin d'un mec efficace, rapide, intelligent pas cher !
Je lui ai répondu : embauchez moi et je vous aiderai a le trouver !!
Répondre à leghola

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

Répondre à Gillou_gre

salut !

J'ai essayé Selection.ShapeRange.IncrementTop HauteurLigne * NbLignes mais sans succès...

Merci quand même ! J'apprécie !

Répondre à zazouy
Tom's Guide > Forum > Programmation > Excel/macro/aide insertion ligne vers bas/code possible ??
Aller à :

Il y a 552 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens