VBA insertion ligne sous conditionS

Résolu/Fermé
Lomic6 Messages postés 4 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 12 juillet 2011 - 1 juil. 2011 à 07:49
Lomic6 Messages postés 4 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 12 juillet 2011 - 1 juil. 2011 à 13:38
Bonjour,

Debutant en VBA, je souhaiterai savoir comment peut on obtenir une insertion de 1 seule ligne, basee sur un changement de valeur dans plusieurs colonnes, et ce, simultanement:

Par exemple dans colonne A on a:
A
A
A
B
B
C
D
D

Dans colonne B on a:
a
a
a
a
a
a
b
c
et je veux faire une insertion de une seule ligne pour obtenir...

A a
A a
A a
"inserer ligne"
B a
B a
"inserer ligne"
C a
"inserer ligne"
D b
"inserer ligne"
D c
"inserer ligne"

Merci d'avance pour vos bons conseils ;)
A voir également:

4 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
1 juil. 2011 à 09:37
Bonjour,

voici un fichier selon votre exemple.

Cordialement.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
1 juil. 2011 à 10:22
Salut Chossette9,
Juste pour que tous puissions accéder aux fichiers créés sur ce forum, il vaut mieux les enregistrer sous format Excel 97-2003. ton fichier est en effet inaccessible aux versions excel <2007...
Merci de penser à nos vieilles bécanes...
Bonne journée
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
1 juil. 2011 à 10:31
Oups, excusez ma maladresse.

Voici le fichier au format Excel 97-2003.

Cordialement.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
1 juil. 2011 à 10:37
Oups deuxième maladresse. J'ai appris ça il n'y a pas longtemps, sur un autre forum, alors je peux frimer!!!
L'écriture : DerLig = Range("A1048576").End(xlUp).Row empêche la portabilité de ta macro sur les versions antérieures à 2007. L'écriture DerLig = Range("A65536").End(xlUp).Row empêche la portabilité de ta macro sur les versions à partir de 2007 qui, comme tu le sais, peuvent aller plus loin que 65536 lignes...
Donc il convient dorénavant d'utiliser les syntaxes suivantes :
DerLig = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'ou
DerLig = Range("A" & Rows.Count).End(xlUp).Row
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
1 juil. 2011 à 10:40
Merci de l'info ami pijaku !!

Ce qui est bien c'est qu'on en apprend tous les jours.

Sinon, plus compliqué, on peut toujours tester la version d'Office utilisée, et si c'est Office 12 ou supérieur (Office 12 = Office 2007) on met A1048576, sinon on met A65536.

Mais ta solution est surement la meilleure.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
1 juil. 2011 à 10:43
Mais ta solution est surement la meilleure. Oui, je sais... Merci!!
;-)))
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
1 juil. 2011 à 10:44
Lol ça va les chevilles :D
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
1 juil. 2011 à 10:56
Les chevilles, cher chossette (lol) vont très bien merci.
Cessons cette digréssion...
Bonne journée!!
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
1 juil. 2011 à 11:52
Youhou, ya quelqu'un ?
0
Lomic6 Messages postés 4 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 12 juillet 2011
1 juil. 2011 à 13:38
Chosette9, Pijaku,

Merci beaucoup pour votre aide !!!

Cela fonctionne parfaitement.

Bonne Soiree et bon Week-end a vous.
0