Insertion de ligne sous conditions

Bonjour,

Utilisateur Excel régulier, je me retrouve face à un problème que seul VBA peut résoudre apparement...

Je découvre ce code et galère un peu...beaucoup!!

J'ai tenté de trouver des tutos, exemples sur différents forums et site internets mais pas de cas se rapprochant d'assez près de ce que je veux faire, du coup me voici vous quémandez à vous, oh grands codeurs, un peu d'aide...

Voici donc mon problème :

Je désire que lors de la sélection d'une cellule (où un choix par menu déroulant est appliqué) dans une colonne donnée la sélection d'une valeur implique l'insertion d'une copie d'une ligne de référence (ligne masquée en début de tableau) en dessous de la cellule active ou à partir d'une ligne sans valeur dans une colonne donnée (j'anticipe les utilisations futures de cette macro...).

Je suis parti sur un truc du genre :

[Sub Ajoutsingularite()

If Columns("M:M").Select Then

ElseIf activecell.Value <> "" Then

Rows("9:9").Select

Selection.Copy

Selection.Rows(curligne).Insert Shift:=xlDown

End If

End Sub]

Oui je sais ça veut surement rien dire mais on ne se moque pas SVP, je fais à hauteur de mes petites capacités!!!

Je ne pense pas qu'il y est besoin du fichier en PJ mais si besoin me le signaler j'en ai prévu une version "allégée"...

Je vais surement abuser de votre patience (légendaire d'après ce que j'ai pu voir sur d'autres fils...) en vous priant, si possible de décrire l'action de chaque ligne de commande afin de bien comprendre ce que je fais, le but n'étant pas (uniquement) de me faire macher mon boulot...

Et merci d'avance à ceux qui prendront soit le temps de me lire et encore plus à ceux qui prendront le temps de me répondre

Bonjour et bienvenue sur le forum

Avec un fichier, ce serait plus commode...

Bye !

Bonjour,

Merci pour le retour

Fichier light en PJ

Bon apparemment je n'ai pas beaucoup de succès...

Mais la détermination a payée et je post le résultat pour info :

[Sub Ajoutsingularite()

Set colonnesingularite = Columns("M:M")

Set cellulesingularite = ActiveCell

Set Refsingularite = Rows(8)

Set isect = Application.Intersect(colonnesingularite, cellulesingularite)

If isect Is Nothing Then

ElseIf isect <> "" Then

Refsingularite.Select

Selection.Copy

cellulesingularite.EntireRow.Insert shift:=xlUp

cellulesingularite.Select

End If

End Sub]

Bon ca vaut ce que ca vaut mais ca marche (pour l'instant...)

Si quelqu'un a un truc pour insérer la ligne en dessous je suis preneur

Et histoire de corser les choses si d'aventures quelqu'un a également une méthode pour que la cellule désignée comme active soit la dernière non vide d'une colonne cible j'approfondirais mes petites connaissances...

Bonjour le forum,

Bon je ne déchaine pas les foules, ça c'est clair...

Mais je vais au bout du truc, on sait jamais, si ça peut servir à quelqu'un...qui sait...

Pour que la ligne soit insérée en dessous de la cellule active :

[Sub Ajoutsingularite()

Set colonnesingularite = Columns("M:M")

Set cellulesingularite = ActiveCell

Set Refsingularite = Rows(8)

Set isect = Application.Intersect(colonnesingularite, cellulesingularite)

If isect Is Nothing Then

ElseIf isect <> "" Then MsgBox "ajout d'une nouvelle singularité"

Refsingularite.Select

Selection.Copy

cellulesingularite.Offset(1, 0).Select

Selection.EntireRow.Insert shift:=xlUp

cellulesingularite.Select

End If

End Sub]

@ la prochaine

(en espérant plus de retour...je me sens seul...)

Rechercher des sujets similaires à "insertion ligne conditions"