Insertion d'une colonne fixe

pinguuu Messages postés 17 Statut Membre -  
Heliotte Messages postés 1561 Statut Membre -
Bonjour,

Je souhaiterais inserer une colonnes fixe dans un nouveau fichier ou j'insert une nouvelle base de données chaque jour.
Le commentaire que j'inscrit dans cette colonne devra rester visible maglré l'incrémentation d'un nouveau fichier ....

8 réponses

  1. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonsoir pinguuu,

    Essaie avec :
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight
    0
  2. pinguuu Messages postés 17 Statut Membre
     
    Merci Heliotte,
    Pour l'insertion de colonne cela marche très bien.
    Mais par contre j'ai toujours mon souci...(le commentaire que j'écris dans la colonne disparait une fois que je remplace la feuille existance par une autre feuille du même format avec son incrematation... )
    Donc je voudrais savoir comment garder mon commentaire visible pour qu'il apparaisse à chaque fois, malgré que la feuille change tout le temps.
    0
  3. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonjour pinguuu,
    Si tu supprime une feuille, il me parait évident que tu n'ai plus de valeurs, dans aucune cellule.
    Si tu veux absolument récupérer le commentaire, par cellule, il faut mémoriser dans une variable (tableau peut-être), le contenu, supprimer la feuille désirée et finalement, écrire le commentaire dans la cellule désirée.
    0
  4. pinguuu Messages postés 17 Statut Membre
     
    Bonjour Heliotte,
    Il faudrait crée un genre de boucle ?
    Faire un autre tableau qui récapitule les erreur possible ?
    Et insérer le tout dans mon fichier de synthèse ?
    Mais le but étant que le commentaire s'insère le plus automatiquement possible.
    0
    1. Heliotte Messages postés 1561 Statut Membre 92
       
      Dans le cas ou il n'y a qu'un seul commentaire et que tu es certain de le trouver, disons dans la cellule "G:10", il n'y a pas de boucle à mettre en place.
      Dans tous les autre cas, il faut effectivement faire une boucle.
      Si tu es certain que ce commentaire ne concerne qu'une seule et unique cellule, trois variables au maximum sont nécessaires: 1 pour stocker la colonne, 1 pour stocker la ligne et une pour stocker la valeur. Dans les autres cas, il te faudra bien un tableau. Chaque élément du tableau peut recevoir toutes les données dans ce format: tablo(n) = "NoColonne|NoLigne|Commentaire écrit dans la colonne".
      Ensuite, pour chaque élément du tableau, il faut splitter en trois variables, 1 pour le numéro de colonne, 1 pour le numéro de ligne et une pour le commentaire. De cette façon chaque commentaire est placé au bon endroit.
      0
    2. pinguuu Messages postés 17 Statut Membre
       
      Merci Heliotte,
      Effectivement je suis plutôt dans le numéro 2
      Mon commentaire est à placer dans plusieurs cellules ( et ce commentaire peut varier d'une cellule à l'autre)
      Quelle genre de boucle serait la mieux adapté ?
      0
    3. Heliotte Messages postés 1561 Statut Membre 92
       
      C'est Excel ?
      Donc VBA.
      Option Explicit
      Private Tablo() As String
      
      Private Sub TransfererRem
      ....Dim C As Integer, L as Integer
      ....Dim PL As Integer,DL As Integer ' PL:PrmièreLigne,DL:DernièreLigne
      ....Dim PC As Integer,DC As Integer ' PC:PrmièreColonne,DC:DernièreColonne
      ....'
      ....Redim Tablo(0)
      ....For L = PL To DL
      ........For C=PC To DC
      ............If(Cells(C, L).Value <> "") Then
      ................Redim Preserve Tablo(Ubound(Tablo)+1)
      ................Tablo(Ubound(Tablo) ) = Trim(Str(C)) & "|" & Trim(Str(L)) & "|" & Cells(C, L).Value
      ............End If
      ........Next C
      ....Next L
      End Sub


      Et quand tu récupère les valeurs du tableau :
      Dim tSplt As Variant
      For i=Lbound(Tablo) To Ubound(Tablo)
      ....tSplit = Split(Tablo(i))
      ....Cells(Val(tSplit(0)), Val(tSplit(1))).Value = tSplit(2)
      Next i

      N'oublies pas d'ajouter les noms de feuilles!
      0
    4. pinguuu Messages postés 17 Statut Membre
       
      Merci pour se code,
      Mais je n'arrive pas à l'executer :/
      L'erreur 1004 aparait sur la ligne If(Cells(C, L).Value <> "") Then
      et j'ai bien ajouté le nom de mes feuilles
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Heliotte Messages postés 1561 Statut Membre 92
     
    J'ai fait une erreur::pas testé le code pondu
    Option Explicit
    
    Private Tablo() As String
    
    Private Sub TransfererRem()
        Dim C As Integer, L As Integer
        Dim PL As Integer, DL As Integer ' PL:PrmièreLigne,DL:DernièreLigne
        Dim PC As Integer, DC As Integer ' PC:PrmièreColonne,DC:DernièreColonne
        '
        PL = 1: PC = 1
        DL = 5: DC = 5
        ReDim Tablo(0)
        ' *----------------------------------*
        ' * Récupérer les valeurs nécessaire *
        ' *----------------------------------*
        Sheets("Feuil1").Select
        For L = PL To DL
            For C = PC To DC
                If (Cells(C, L).Value <> "") Then
                    ReDim Preserve Tablo(UBound(Tablo) + 1)
                    Tablo(UBound(Tablo)) = Trim(Str(C)) & "|" & Trim(Str(L)) & "|" & Cells(C, L).Value
                End If
            Next C
        Next L
        ' *-------------------------------*
        ' * Ecrire les valeurs nécessaire *
        ' *-------------------------------*
        Sheets("Feuil2").Select
        Dim i As Integer, tSplit As Variant
        For i = 1 To UBound(Tablo)
            tSplit = Split(Tablo(i), "|")
            Cells(Val(tSplit(0)), Val(tSplit(1))).Value = tSplit(2)
        Next i
    End Sub

    Maintenant cela devrait être correct !
    0
  7. pinguuu Messages postés 17 Statut Membre
     
    Merci Heliotte cela marche très bien !!!!
    Je souhaiterais encore apporter quelque modifications à se programme
    Est il possible de mettre en relation la cellule cible avec la ligne correspondante.
    Exemple dans la base de donné qui evolu chaque jour il y a des lignes qui ont était supprimées.
    Je souhaiterais alors que mon commentaire qui était en face de ces lignes soit eux aussi supprimés automatiquement.
    0
  8. Heliotte Messages postés 1561 Statut Membre 92
     
    Je suppose que oui, mais ..
    Tu veux récupérer les cellules contenant des commentaires de la feuille "1" et les écrire dans les mêmes cellules de la feuille "2" ==> Ca, c'est fait.
    Alors, je ne comprends pas ce que vient faire ici des valeurs d'une base de données!
    Plus d'explications ?
    0
    1. pinguuu Messages postés 17 Statut Membre
       
      Il est vrai que cela semble un peu flou.
      Ce que je veux dire c'est que les valeurs de ma feuille 1 varie chaque jour.
      Exemple j'ai plusieurs article un jour et d'autres le lendemain
      Feuille1 ARTICLE COMMENTAIRES Feuille2 ARTICLE COMMENTAIRES
      B erreur B erreur
      C C
      D erreur D erreur
      E E
      La cela marche très bien
      le lendemain dans ma feuille 1 j'ai des nouveaux articles
      ARTICLE COMMENTAIRES Feuille2 ARTICLE COMMENTAIRES
      C C erreur
      D D
      E E erreur
      F F

      En feuille cela n'a pas suivi
      On voit que l'article B a disparu
      Ce que je souhaiterais c'est que mon commentaire se supprime en meme temps que la ligne B.
      Qu'il y est une sorte de lien entre le commentaire et la ligne.
      0
    2. Heliotte Messages postés 1561 Statut Membre 92
       
      Excuse-moi pinguuu,
      Cela devient de plus en plus flou !
      On parlait de cellules, et maintenant tu parles de lignes. Je t'avoue y perdre mon latin
      Peux-tu mettre un exemple de ce que tu as on départ les jours 1, 2 et 3 par exemple, et A PART, ce que tu veux comme résultat ?
      Tu peux déposer des fichiers sur "CiJoint.com" et nous mettre le lien dans ton prochain message si tu veux, car comme ça, perso je voit pas du tout ce que tu souhaite comme résultat.
      En fait je crains que tu veuille tout concaténer, et si c'est ça, tu va très vite avoir des volumes de texte à ne plus savoir qu'en faire .. mais j'ai probablement mal interprété ton souhait.
      0
    3. pinguuu Messages postés 17 Statut Membre
       
      Effectivement Heliotte je comprends que cela est compliqué
      mais voila ce que je souhaite
      jour 1
      feuille1 article commentaire.......feuille2 article commentaire
      ............A........erreur............................A.......erreur
      ............B............................................B
      ............C............................................C
      ............D.......erreur.............................D........erreur
      Jour2
      feuille1 article commentaire.......feuille2 article commentaire
      ...........B.............................................B
      ...........C.............................................C
      ...........D........erreur.............................D.......erreur
      ...........E.............................................E
      Si je parle de ligne maintenant c'est pour la mettre en lien avec ma cellule
      Il faudrait que ma cellule erreur puisse se supprimer automatiquement en lien avec la ligne A comme dans l'exemple
      0
    4. Heliotte Messages postés 1561 Statut Membre 92
       
      Qu'as-tu comme indication te donnant l'envie de supprimer la ligne A .. C'est parce que dans le "Jour2", il n'y a pas d'informations sur la ligne "A" ? C'est ça ?
      0
    5. pinguuu Messages postés 17 Statut Membre
       
      Enfin cela signifie que la ligne A a été traitée
      Donc on la supprime
      0
  9. pinguuu Messages postés 17 Statut Membre
     
    Pour l'instant le programme marche bien et je t'en remercie
    Juste sur ce dernier point qui n'est peut etre pas réalisable je ne sais pas ce que tu en pense ?
    relier la ligne d'un fichier qu'on vient d'insérer dans le nouveau classeur ouvert avec une cellule de la feuille du classeur ouvert.
    0
    1. Heliotte Messages postés 1561 Statut Membre 92
       
      Admettons que tu veuille lier la cellule "A1" du classeur "1" à la cellule 'X12" du classeur "2", c'est à dire que la cellule "A1", classeur "1" va afficher la valeurs de la cellule "X12", classeur "2", même si on change sa valeur.
      Tu ouvres les deux classeurs,
      tu te positionne dans la cellule dont tu veux qu'elle prenne la valeur de l'autre (même si quelq'un la modifie),
      Tu 'tapes "=" (le signe égal),
      Tu clisues dans la cellule dont la valeur peut-être changée,
      Tu fait "Enter" .. et le tour est joué
      Dans la cellule de départ, tu drait voir quelque chose comme :
      ='[NomDuClasseur]NomDeLaFeuille'!$NoColonne$NoLigne
      0
    2. pinguuu Messages postés 17 Statut Membre
       
      bonjour Heliotte
      cela marche très bien il reste un petit hic
      quand dans ma feuille1 la ligne auquel le commentaire est attaché le commentaire disparait bien
      mais en revanche dans ma feuille2 la ligne disparait aussi ma pas le commentaire associée
      est ce normal ?
      0
    3. Heliotte Messages postés 1561 Statut Membre 92
       
      Wablieft ? Est-on toujours dans ce cas-ci ? Admettons que tu veuille lier la cellule "A1" du classeur "1" à la cellule 'X12" du classeur "2", c'est à dire que la cellule "A1", classeur "1" va afficher la valeurs de la cellule "X12", classeur "2", même si on change sa valeur.
      Si tu "deletes" le contenu de "A1" du classeur "1" .. tu supprime la référence, ce qui signifie que tu as beau changer la valeur de "X12" du classeur "2" .. la valeur de "A1" du classeur "1" ne changeras plus.
      0
    4. pinguuu Messages postés 17 Statut Membre
       
      oui oui on est toujours dans se cas la
      je veux sans doute faire quelque chose qui n'exsiste pas alors :/
      0
    5. Heliotte Messages postés 1561 Statut Membre 92
       
      [Classeur 1, Cellule A1.Value] = [Classeur 2, Cellule X12.Value] :
      Quand tu change la valeur de [Classeur 2, Cellule X12], automatiquement la valeur de [Classeur 1, Cellule A1] est remplacée par la valeur de [Classeur 2, Cellule X12]
      Ce que je ne comprends pas, c'est la raison de supprimer [Classeur 1, Cellule A1] ?
      0