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