Décaler colonne

loupti Messages postés 30 Statut Membre -  
loupti Messages postés 30 Statut Membre -
Bonjour,

Je souhaiterai faire une boucle afin de décaler des informations, entrées sur un userform, d'une colonne à chaque fois qu'une nouvelle liste d'information est communiquée.

Actuellement j'ai le code suivant :

Private Sub BuOK_Click()
Dim feuille2 As Worksheet
UsfOrigine3 = Me.Name
    'on créé la feuille "Information générales du fichier" si elle n'existe pas déjà
    Set feuille2 = Creer_Feuil(xlBook, "Presentation Information")
    'on y stocke toutes les infos saisies
    xlApp.Visible = True
    With feuille2
        .[A1] = TbSection
        .[A2] = TbSeqNumber
        .[A3] = TbRevision
        .[A4] = CbRevision
        .[A5] = TbDate
        .[A6] = TbDescription
        .[A7] = TbDrawn
        .[A8] = TbChecked
        .[A9] = TbApproved
    End With
    'Enregistrement du classeur "Projet" dans répertoir D:\DATA\c.beguin\Documents
    xlBook.SaveAs Filename:=monRep & Nom_Proj, FileFormat:=xlExcel8
        
    Unload Me
End Sub


Mais à chaque fois qu'on entre une nouvelle liste d'information, cela écrase les informations déja enregistrées sur ma feuille excel.

j'ai trouvé que pour décaler, il faut utiliser la fonction offset et pour sélectionner une colonne, la fonction Range (A").select ou Colums("A"). Select
Mais ce que j'aimerai c'est que la première liste d'information soit mise en colonne A, la seconde en B ....

Je suis débutante sur la programmation, c'est pourquoi je n'arrive pas à réaliser ce que j'aimerai faire ...

Merci d'avance

Cordialement,

loupti

3 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Loupti, bonjour le forum,

    Peut-être comme ça :

    Private Sub BuOK_Click()
    Dim feuille2 As Worksheet
    Dim DEST As Range
    
    UsfOrigine3 = Me.Name
    'on créé la feuille "Information générales du fichier" si elle n'existe pas déjà
    Set feuille2 = Creer_Feuil(xlBook, "Presentation Information")
    'on y stocke toutes les infos saisies
    xlApp.Visible = True
    With feuille2
        Set DEST = IIf(.Range("A1").Value = "", .Range("A1"), .Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
        DEST.Value = TbSection
        DEST.Offset(1, 0).Value = TbSeqNumber
        DEST.Offset(2, 0).Value = TbRevision
        DEST.Offset(3, 0).Value = CbRevision
        DEST.Offset(4, 0).Value = TbDate
        DEST.Offset(5, 0).Value = TbDescription
        DEST.Offset(6, 0).Value = TbDrawn
        DEST.Offset(7, 0).Value = TbChecked
        DEST.Offset(8, 0).Value = TbApproved
    End With
    'Enregistrement du classeur "Projet" dans répertoir D:\DATA\c.beguin\Documents
    xlBook.SaveAs Filename:=monRep & Nom_Proj, FileFormat:=xlExcel8
        
    Unload Me
    End Sub

    1
    1. loupti Messages postés 30 Statut Membre
       
      Merci ThauTheme, je vais tester cela :)
      0
    2. loupti Messages postés 30 Statut Membre
       
      J'ai tété le code que vous m'avez indiqué mais j'ai une erreur d'exécution quand je fais le test au niveau de cette ligne de code :
      Set DEST = IIf(.Range("A1").Value = "", .Range("A1"), .Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1))


      Ma question est surement bête mais que veux dire erreur définie par l'application ou par l'objet ?
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    à adapter à ton contexte
    col est la A° colonne vide
    With Sheets(2)
    col = IIf(Range("A1") = "", 1, .Rows(1).Find("", .Range("A1")).Column)
    End With
    .cells(1,col)="zaza"
    etc


    Michel
    0
    1. loupti Messages postés 30 Statut Membre
       
      Merci Michel_m, avec ta proposition de code du coup ça donne quelque chose comme ça ?
      
      Private Sub BuOK_Click()
      Dim feuille2 As Worksheet
      Dim col as Integer
      UsfOrigine3 = Me.Name
          'on créé la feuille "Information générales du fichier" si elle n'existe pas déjà
          Set feuille2 = Creer_Feuil(xlBook, "Presentation Information")
          'on y stocke toutes les infos saisies
          xlApp.Visible = True
      
      With feuille2
      col = IIf(Range("A1") = "", 1, .Rows(1).Find("", .Range("A1")).Column)
      col = IIf(Range("A2") = "", 1, .Rows(1).Find("", .Range("A2")).Column)
      col = IIf(Range("A3") = "", 1, .Rows(1).Find("", .Range("A3")).Column)
      col = IIf(Range("A4") = "", 1, .Rows(1).Find("", .Range("A4")).Column)
      col = IIf(Range("A5") = "", 1, .Rows(1).Find("", .Range("A5")).Column)
      col = IIf(Range("A6") = "", 1, .Rows(1).Find("", .Range("A6")).Column)
      col = IIf(Range("A7") = "", 1, .Rows(1).Find("", .Range("A7")).Column)
      col = IIf(Range("A8") = "", 1, .Rows(1).Find("", .Range("A8")).Column)
      col = IIf(Range("A9") = "", 1, .Rows(1).Find("", .Range("A9")).Column)
      End With
      
      .cells(1,col)=TbSection
      .cells(2,col)=TbSeqNumber.
      .cells(3,col)=TbRevision
      .cells(4,col)=CbRevision
      .cells(5,col)=TbDate
      .cells(6,col)=TbDescription
      .cells(7,col)=TbDrawn
      .cells(8,col)=TbChecked
      .cells(1,col)=TbApproved
      
          'Enregistrement du classeur "Projet" dans répertoir D:\DATA\c.beugin\Documents
          xlBook.SaveAs Filename:=monRep & Nom_Proj, FileFormat:=xlExcel8
              
          Unload Me
      End Sub
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      With feuille2
      col = IIf(.Range("A1") = "", 1, .Rows(1).Find("", .Range("A1")).Column)
      End with

      n'oublie pas le point devant range
      0
    3. loupti Messages postés 30 Statut Membre
       
      ah oui mince, je l'avais oublié ...

      J'ai un problème quand je teste ce code, j'ai une erreur, ça me met erreur de compilation ... "référence incorrecte ou non qualifiée"
      0
    4. loupti Messages postés 30 Statut Membre
       
      Voici le code que j'ai écrit ... J'ai du faire une erreur

      Private Sub BuOK_Click()
      Dim feuille2 As Worksheet
      Dim col As Integer
      UsfOrigine3 = Me.Name
          'on créé la feuille "Information générales du fichier" si elle n'existe pas déjà
          Set feuille2 = Creer_Feuil(xlBook, "Presentation Information")
          'on y stocke toutes les infos saisies
          xlApp.Visible = True
          
      With feuille2
          col = IIf(.Range("A1") = "", 1, .Rows(1).Find("", .Range("A1")).Column)
          col = IIf(.Range("A2") = "", 1, .Rows(2).Find("", .Range("A2")).Column)
          col = IIf(.Range("A3") = "", 1, .Rows(3).Find("", .Range("A3")).Column)
          col = IIf(.Range("A4") = "", 1, .Rows(4).Find("", .Range("A4")).Column)
          col = IIf(.Range("A5") = "", 1, .Rows(5).Find("", .Range("A5")).Column)
          col = IIf(.Range("A6") = "", 1, .Rows(6).Find("", .Range("A6")).Column)
          col = IIf(.Range("A7") = "", 1, .Rows(7).Find("", .Range("A7")).Column)
          col = IIf(.Range("A8") = "", 1, .Rows(8).Find("", .Range("A8")).Column)
          col = IIf(.Range("A9") = "", 1, .Rows(9).Find("", .Range("A9")).Column)
      End With
      
      .Cells(1, col) = TbSection
      .Cells(2, col) = TbSeqNumber
      .Cells(3, col) = TbRevision
      .Cells(4, col) = CbRevision
      .Cells(5, col) = TbDate
      .Cells(6, col) = TbDescription
      .Cells(7, col) = TbDrawn
      .Cells(8, col) = TbChecked
      .Cells(9, col) = TbApproved
      
      'Enregistrement du classeur "Projet" dans répertoir D:\DATA\c.beugin\Documents
          xlBook.SaveAs Filename:=monRep & Nom_Proj, FileFormat:=xlExcel8
              
          Unload Me
      End Sub
      
      
      0
  3. loupti Messages postés 30 Statut Membre
     


    voici une capture écran de l'erreur
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      tu n'es pas dans un bloc feuille
      le point indique l'appatenance à un objet ( with;;;end with

      ET TU N'AS BESOIN QUE D'UNE LIGNE COL=IIF...
      si je te donne des modifs que tu n'appliques pas, il est inutile qu'on passe du temps à essayer de t'aider...
      0
    2. loupti Messages postés 30 Statut Membre
       
      Désolée je n'avais pas compris ...
      et j'ai également besoin que d'une seule ligne : . Cells(1, col) = TbSection
      Ou comme j'ai fait c'est bon ?
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      abandon...
      0
    4. loupti Messages postés 30 Statut Membre
       
      D'accord... Je suis débutante en programmation, désolée.

      Merci pour vos conseils ...

      Loupti
      0