Eviter une copie partielle de cellule

toony.m

XLDnaute Nouveau
Bonjour tout le monde!

Petite question du matin :

Un classeur possède 2 feuilles. La 2ème feuille recopie, si une valeur existe, les données de la 1ère feuille avec le code :
Code:
=SI(ESTVIDE(feuille1!$A$12);"";feuille1!$A$12)
Et ce sur 300 lignes
...
Code:
=SI(ESTVIDE(feuille1!$A$312);"";feuille1!$A$312)

Mon problème est que si j'insère une nouvelle ligne dans la 1ère feuille, la 2ème feuille n'en tient pas compte et décale la valeur de toutes ses formules.

Comment faire donc pour que cela fonctionne ?
 

nolich

XLDnaute Occasionnel
Re : Eviter une copie partielle de cellule

Bonjor toony.m, bonjour à toutes et à tous :)

Un classeur possède 2 feuilles. La 2ème feuille recopie, si une valeur existe, les données de la 1ère feuille avec le code :
Code:
=SI(ESTVIDE(feuille1!$A$12);"";feuille1!$A$12)
Et ce sur 300 lignes
...
Code:
=SI(ESTVIDE(feuille1!$A$312);"";feuille1!$A$312)

Mon problème est que si j'insère une nouvelle ligne dans la 1ère feuille, la 2ème feuille n'en tient pas compte et décale la valeur de toutes ses formules.

Comment faire donc pour que cela fonctionne ?

Pourquoi ne fais-tu pas plus simplement :

Code:
=feuille1!$A12

que tu recopie vers le bas. Dans ton cas, tu n'as pas besoin de coder ta ligne en "dur". C'est pourquoi je te conseille d'enlever le $ avant le numéro de ligne.
Un simple copier / coller ou une recopie te permettra d'obtenir la bonne ligne, même si tu insères des lignes dans ta 1ère feuille.

De plus, ton SI n'est pas utile dans le cas présent car si la cellule de ta feuille1 est vide, cela sera de même dans ta feuille 2.

@+
 

toony.m

XLDnaute Nouveau
Re : Eviter une copie partielle de cellule

Merci nolich mais la condition SI est présente car sinon un "0" s'affiche dans la 2ème feuille (pourquoi je ne sais pas).

Sinon j'ai essayé ton code
Code:
=feuille1!$A12
que j'ai étiré vers le bas jusqu'a
Code:
=feuille1!$A312

mais ça ne marche pas non plus.
Si j'insère une nouvelle ligne dans la feuille 1 à la ligne 13 par ex., j'aurais dans la feuille 2
Code:
=feuille1!$A12
=feuille1!$A14
=feuille1!$A15
...
 

nolich

XLDnaute Occasionnel
Re : Eviter une copie partielle de cellule

Re,

Pour les zéros, tu peux aller dans le menu Outils / Options / Affichage et décocher les valeurs 0. Si cette solution ne te convient pas pour diverses raisons, tu peux revenir au SI.

Pour l'insertion en feuille 1, j'ai essayé et tu as tout à fait raison. Trois choix s'offrent à toi (mini) :

1. Sélectionner tes 2 feuilles avant l'insertion en feuille1, cela laissera un vide au lieu d'y inscrire une formule que tu ne souhaites pas (à toi de la remplir)

2. Passer par vba pour corriger les formules

3. Après chaque insertion, tirer à nouveau tes formules en feuille2.

Si tu souhaites aller plus avant, joins-nous ton fichier.

@+

EDIT : mais aussi suivre l'exemple d'abcd que je salue au passage :)
 

toony.m

XLDnaute Nouveau
Re : Eviter une copie partielle de cellule

Bon ba j'ai essayé la version de abcd (Merci!) mais ça ne marche pas, j'ai dû rater quelque chose. J'ai pourtant mis le code :
Code:
=INDIRECT("référentiel!A"&17)
Et j'ai toujours un "0".

Sinon, il reste tes solutions nolich, le VBA mais je ne m'y connait pas assez pour cela.
Voila le fichier:
referentiel-final.zip
 

nolich

XLDnaute Occasionnel
Re : Eviter une copie partielle de cellule

Re :)

Voici l'illustration des conseils d'abcd appliqués à ton fichier.

@+
 

Pièces jointes

  • Formule.jpg
    Formule.jpg
    52.7 KB · Affichages: 35
  • Format.jpg
    Format.jpg
    52.6 KB · Affichages: 33
  • Formule.jpg
    Formule.jpg
    52.7 KB · Affichages: 44
  • Format.jpg
    Format.jpg
    52.6 KB · Affichages: 30
  • Formule.jpg
    Formule.jpg
    52.7 KB · Affichages: 41
  • Format.jpg
    Format.jpg
    52.6 KB · Affichages: 31

mutzik

XLDnaute Barbatruc
Re : Eviter une copie partielle de cellule

bonjour à tous,

et ma question de principe qui tue : pourquoi reprendre toutes les valeurs de la feuille 1 sur la feuille 2, peut-être devrait on commencer par s'attaquer à la source du prob ...
 

abcd

XLDnaute Barbatruc
Re : Eviter une copie partielle de cellule

Re,

Il faut bien lire ce qui t'es conseillé de faire et l'appliquer ... la formule et le format.

En Emploi1!A8 : = INDIRECT("référentiel!A"&LIGNE()+3)
cellule au format Standard;; (deux points-virgules après Standard)

abcd
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 959
Membres
103 990
dernier inscrit
lamiadebz