VBA insertion ligne sous conditionS
Résolu
Lomic6
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Lomic6 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Lomic6 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
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 ;)
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:
- VBA insertion ligne sous conditionS
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Insertion sommaire word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
4 réponses
Oups, excusez ma maladresse.
Voici le fichier au format Excel 97-2003.
Cordialement.
Voici le fichier au format Excel 97-2003.
Cordialement.
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 :
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
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.
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.
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