EXCEL VBA - Insertion de ligne a ref. variabl

Résolu
Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -  
Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

JE voudrais savoir comment avec du code, on peut retrouver une valeur précise dans une colonne....

A partir du choix d une valeur dans une cellule, il faudrait pouvoir retrouver le tableau correspondant dans une autre feuille de calcul, et y inserer des infos. LE probleme c Est qu a chaque ajout, la valeur des lignes vont changer a chaque fois. Au début j'avais écrit pour la macro du bouton "save":

If Sheets("Feuil2").Range("A6").Value = "Argentina" Then
Sheets("Feuil1").Rows(11).EntireRow.Insert
Sheets("Feuil2").Range("A6:F6").Copy
Sheets("Feuil1").Range("A11").PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False

Else
Sheets("Feuil1").Rows(16).EntireRow.Insert
Sheets("Feuil2").Range("A6:F6").Copy
Sheets("Feuil1").Range("A16").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

End if

Mais le probleme c est que toutes ces reference de lignes change a chaque fois ....... comment faire...??



--
Bienheureux ceux qui savent rire d'eux mêmes: ils n'ont pas finis de s'amuser!

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Option Explicit 
    Sub inserer_svt_plant() 
    Dim plant As String 
    
    plant = Sheets(2).Range("A6") 
    
    With Sheets(1) 
        lig = .Columns("A").Find(plant, .Range("A1"), xlValues).Row + 3 
        Rows(lig).Insert Shift:=xlDown 
        .Range(.Cells(lig, "A"), .Cells(lig, "F")) = Sheets(2).Range("A6:F6").Value 
    End With 
    End Sub 
    


    demo
    http://www.cijoint.fr/cjlink.php?file=cj201102/cijYvVqExA.xlsm
    Michel
    1
    1. Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   12
       
      MErci bien michel!! je pensais pas que la commande .Find fonctionnait avec l objet Columns(). JE vais mettre les noms des pays en colonnes B !
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Content pour toi.
      nota:"Columns" est en fait une propriété de l'objet "range" ou "worksheets"
      0
  2. Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   12
     
    excusez moi j ai oublier de vous mettre le fichier joint!! le voici!

    http://www.cijoint.fr/cjlink.php?file=cj201102/cijai5GYI8.xlsx

    merci encore
    0
  3. Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   12
     
    J ai essayer de simplifier la boucle with, et ça marche bien aussi sans :

    Plant_Name = Sheets(2).Range("D12").Value
    d = Sheets(1).Columns("A").Find(Plant_Name).Row + 3
    Sheets(1).Rows(d).EntireRow.Insert
    Sheets(2).Range("D12").Copy
    Sheets(1).Range("A" & d).PasteSpecial Paste:=xlPasteValues

    MErci pour votre aide!

    NB: les ref ci dessus n'ont plus rien a voir avec le fichier partagé!..)
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      "With- End with" n'est pas une boucle mais un bloc
      et il faut autant que possible éviter les copy-paste
      la dessus démo
      https://www.cjoint.com/?3cuiVbgwcXX

      je pars en rando : je te donnerai des adresses de tutos ce soir ou demain matin
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      concernant "WIth -end with" page 39
      du Cours excel

      https://bidou.developpez.com/article/VBA/
      0
    3. Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   12
       
      Merci MIchel!
      0