Insertion d'une colonne fixe

Fermé
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012 - 4 nov. 2012 à 16:47
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 20 nov. 2012 à 14:04
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 ....


A voir également:

8 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
4 nov. 2012 à 20:27
Bonsoir pinguuu,

Essaie avec :
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
0
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
5 nov. 2012 à 07:52
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
5 nov. 2012 à 09:05
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
5 nov. 2012 à 11:11
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
5 nov. 2012 à 11:56
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
5 nov. 2012 à 13:10
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
5 nov. 2012 à 13:48
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
5 nov. 2012 à 14:49
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
5 nov. 2012 à 15:19
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
6 nov. 2012 à 15:09
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
6 nov. 2012 à 17:47
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
7 nov. 2012 à 09:53
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
7 nov. 2012 à 10:03
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
7 nov. 2012 à 14:18
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
7 nov. 2012 à 14:27
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
7 nov. 2012 à 15:07
Enfin cela signifie que la ligne A a été traitée
Donc on la supprime
0
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
8 nov. 2012 à 13:04
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
8 nov. 2012 à 13:45
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
13 nov. 2012 à 13:46
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
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
Modifié par Heliotte le 13/11/2012 à 17:57
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
pinguuu Messages postés 16 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 20 novembre 2012
13 nov. 2012 à 20:36
oui oui on est toujours dans se cas la
je veux sans doute faire quelque chose qui n'exsiste pas alors :/
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
13 nov. 2012 à 21:07
[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