Macro pour coller dans cellule si N° variable

Résolu
hj -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je souhaite une macro pour :
dans une cellule "A1" je rentre un numéro qui sera variable , comme 5 ou 15 ou ...,
je copie une plage comme (B8:G8)
je veux la coller dans la cellule (B numéro saisie dans A1) soit (B5) ou (B15) ou (B...)

merci par avance

3 réponses

Résumé de la discussion

Le besoin est d'une macro Excel qui, à partir du numéro saisi en A1 (par ex. 5 ou 15), copie la plage B8:G8 et la colle dans la colonne B à la ligne correspondante (B5, B15, etc.).
Les échanges portent sur la gestion des insertions de lignes et l’ajustement dynamique des plages (notamment A20:AW54) en présence de plusieurs feuilles, ainsi que sur la distinction entre numéro de ligne et numéro de colonne et l’emplacement exact du collage.
Des variantes de code existent avec une vérification que A1 est numérique et non vide, et un collage direct dans Bn (potentiellement Bn:Gn selon le cas), tout en discutant des implications sur les feuilles multiples et l’emplacement du collage.
L’état actuel montre que le collage demeure fixé à B22 et que trouver une écriture dynamique pour remplacer Range("B22").Select reste non résolu après plusieurs essais et correctifs.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Sub Bouton1_Cliquer()
        With Worksheets("feuil1")
            If .Cells(1, 1) <> "" And IsNumeric(.Cells(1, 1)) Then 'test si non vide et du numerique
                .Range("B8:G8").Copy .Range("B" & .Cells(1, 1))
            Else
                MsgBox "Attention: entrez des chiffres.....!"
            End If
        End With
    End Sub
    0
    1. hj
       
      bonjour , Merci
      cela fonctionne tres bien sur une feuille vierge

      mais je ne suis pas arrivé a ajouter cette condition dans ma macro a la place de " Range("B22").Select "
      6eme avant dernière ligne


      Sub inser_ligne_2()
      '
      ' inser_ligne_2 Macro
      '

      '
      Sheets(Array("Amberieu PREVISION", "Amberieu REALISER")).Select
      Sheets("Amberieu PREVISION").Activate
      Rows(Range("A1") + 0 & ":" & Range("A1") + 0).Select
      Selection.Insert Shift:=xlDown
      Sheets("Amberieu REALISER").Select
      ActiveWindow.SmallScroll Down:=-12
      Range("A20:AW20").Select
      Selection.AutoFill Destination:=Range("A20:AW54"), Type:=xlFillDefault
      Range("A20:AW54").Select
      ActiveWindow.SmallScroll Down:=-30
      ActiveWindow.ScrollColumn = 18
      ActiveWindow.ScrollColumn = 17
      ActiveWindow.ScrollColumn = 16
      ActiveWindow.ScrollColumn = 15
      ActiveWindow.ScrollColumn = 14
      ActiveWindow.ScrollColumn = 13
      ActiveWindow.ScrollColumn = 12
      ActiveWindow.ScrollColumn = 11
      ActiveWindow.ScrollColumn = 10
      ActiveWindow.ScrollColumn = 6
      ActiveWindow.ScrollColumn = 3
      ActiveWindow.ScrollColumn = 1
      Range("B21").Select
      Sheets("Amberieu PREVISION").Select
      Rows("7:7").Select
      Selection.Copy
      Rows(Range("A1") + 0 & ":" & Range("A1") + 0).Select
      ActiveSheet.Paste
      Application.CutCopyMode = False
      Range("B8:G8").Select
      Selection.Copy

      Range("B22").Select

      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      Range("A16").Select
      Application.CutCopyMode = False
      End Sub

      MERCI PAR AVANCE
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      mais je ne suis pas arrivé a ajouter cette condition
      Ben normalement vous devez ajouter cette condition avant la troixieme ligne de code puisque vous utilisez la valeur de A1
      0
    3. hj > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      merci
      je dois respecter la chronologie de ma macro, et la condition ne peut etre qu'a la place du
      Range("B22").Select
      actuelle
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Tout a fait Thiery, mais
      Rows(Range("A1") + 0 & ":" & Range("A1") + 0).Select 

      Troisème ligne erreur si en A1 vide ou non numerique.................................

      De plus trop de select....
      votre code un peu modifie, a vous de voir
      Sub inser_ligne_2()
          '
          With Worksheets("Amberieu PREVISION")
              If .Cells(1, 1) = "" Or Not IsNumeric(.Cells(1, 1)) Then 'test si  vide ou pas numerique
                  MsgBox "Attention: entrez des chiffres.....!"
                  Exit Sub
              End If
          End With
          ' inser_ligne_2 Macro
          Sheets(Array("Amberieu PREVISION", "Amberieu REALISER")).Select     '??????????????????
          Sheets("Amberieu PREVISION").Activate
          Rows(Range("A1")).Insert Shift:=xlDown
          Selection.Insert Shift:=xlDown
          Sheets("Amberieu REALISER").Select
          Range("A20:AW20").Select
          Selection.AutoFill Destination:=Range("A20:AW54"), Type:=xlFillDefault
          Sheets("Amberieu PREVISION").Select
          Rows("7:7").Copy Rows(Range("A1") + 0 & ":" & Range("A1") + 0)
          Range("B8:G8").Select       '?????????????????
          Selection.Copy          '????????????????????????
          Range("B22").Select
      
          Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
          :=False, Transpose:=False
          Range("A16").Select     '?????????????????????
          Application.CutCopyMode = False
      End Sub
      
      0
    5. hj > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour
      merci déjà pour le temps passer sur mon problème

      mais si l’écriture est simplifié , elle ne résout pas mon problème

      dans une cellule "A1" je rentre un numéro qui sera variable , comme 5 ou 15 ou ...,
      je copie une plage comme (B8:G8)
      je veux la coller dans la cellule (B numéro saisie dans A1) soit (B5) ou (B15) ou (B...)

      merci
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Une feuille avec plusieurs onglets
    Classeur avec plusieurs feuilles, onglet: endroit ou il y a le nom de la feuille, c'est plus excel
    Je regarde la chose

    Question: pourquoi choix d'insertion de la ligne ?????

    Autre question: si vous insérez des ligne que devient la plage "A20:AW54" ecrit en dur???????????????????????
    0
    1. hj
       
      insertion - le fichier va etre saisie par une personne limite

      oui la plage A20 : Aw54 doit suivre l'évolution des insertions ou suppression de ligne

      merci
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      insertion - le fichier va etre saisie par une personne limite
      Peut-etre, mais pourquoi inserer une ligne ald de la mettre a la fin ????? Simple reflexion....
      0
    3. hj > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      je ne comprend pas
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Pourquoi vous voulez inserer des lignes plutot que de les mettre en fin de tableau..
      0
    5. hj > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      les informations saisie sont copier visuellement sur une application, et le visuel doit etre identique pour la compréhension de la personne qui est limite (handicap) cette solution d’insérer par un N° de ligne est la plus adapté,

      pour une personne non limité , j'aurai juste fais un tuto sans même faire des macros

      merci par avance si vous avez une solution , tel que demander

      merci pour le temps que vous passez a me comprendre et a apporter des solutions
      0
  3. hj
     
    Bonjour

    l'ajout de ligne peut se faire
    au dessus de chaque N° de ligne y compris du N° 1 (première ligne de saisie) et aussi en dessous de la dernière ligne saisie

    c'est pour cela que j'ai laisser
    une ligne vierge en 20 qui sera masqué
    et des lignes vierges Numéroté en dessous de la dernière ligne saisie

    ai je été clair ?

    merci par avance
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      C'est la reponse que j'attendais. Je fais

      Fichier modifie pour insertion au dessus de 1: https://mon-partage.fr/f/QbJyG145/
      0
    2. hj > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour

      merci
      pour l'insertion au dessus de N°1 c'est top

      mais ne fonctionne pas en dessous de la dernière ligne saisie

      merci par avance
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Chez moi ca marche, juste une erreur pour realiser: fichier corrige: https://mon-partage.fr/f/xx1ScDgE/
      Pour ajout en fin de tableau, il faut ecrire le numero de la derniere ligne +1
      0
    4. hj > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour

      Magnifique super cela marche , je ne serai jamais arrivé a ce résultat

      je l'ai adapté a mon fichier

      serait il possible de vous solliciter pour une amélioration a intégrer
      sur les onglets PREVISION ET REALISER
      en ligne 20 que je grise j'ajoute des filtres,
      Mais pour que l'insertion fonctionne correctement il faut que sur les 2 onglets les filtres soit EFFACE
      est il possible d’intégré cette condition dans la macro?

      et même quand aucun filtre est sélectionné

      Merci pour tout le temps que vous avez passé

      bien cordialement
      0
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Ok, je vous fais ca
      0