VBA insertion ligne sous conditionS

Résolu
Lomic6 Messages postés 4 Statut Membre -  
Lomic6 Messages postés 4 Statut Membre -
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 ;)

4 réponses

  1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    voici un fichier selon votre exemple.

    Cordialement.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Oups, excusez ma maladresse.

    Voici le fichier au format Excel 97-2003.

    Cordialement.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
    2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      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
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Mais ta solution est surement la meilleure. Oui, je sais... Merci!!
      ;-)))
      0
    4. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Lol ça va les chevilles :D
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Les chevilles, cher chossette (lol) vont très bien merci.
      Cessons cette digréssion...
      Bonne journée!!
      0
  3. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Youhou, ya quelqu'un ?
    0
  4. Lomic6 Messages postés 4 Statut Membre
     
    Chosette9, Pijaku,

    Merci beaucoup pour votre aide !!!

    Cela fonctionne parfaitement.

    Bonne Soiree et bon Week-end a vous.
    0