> Tous les forums > Forum Bureautique
 copie de cellules
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
prosper34
  Posté le 13/06/2019 @ 20:25 
Aller en bas de la page 
Astucien

toujours aussi nul.je cherche une formule simple

une image valant mieux qu'un discourt :

merci

Publicité
Debrief
 Posté le 13/06/2019 à 21:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Si on suppose qu'à gauche tu es sur la feuille "Feuil1" et à droite sur la feuille "Feuil2"...

En Feuil2!A6 -> =SI(OU(Feuil1!A6 <> ""; B6 = ""); ""; SI(A5 = ""; Feuil1!A5; A5))

En feuil2!B6 -> =SI(Feuil1!B6 <> ""; Feuil1!B6; "")

Ces 2 formules sont à étendre sur la hauteur désirée.

Cordialement,
D.

prosper34
 Posté le 14/06/2019 à 00:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

merci de ta réponse

je n'ai qu'une feuille, je veux mettre le contenu de A6 dans A7, A8, A9; A10 dans A11; A12 dans A13 ... (bonus) effacer/supprimer les lignes A6, A10, A12 ...

Debrief
 Posté le 14/06/2019 à 07:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

S'il s'agit de la même feuille tu ne peux pas, avec une formule à la fois te débarrasser du nom avant et l'utiliser en nom après.

D'autre part mettre une formule du genre en A7 -> =A6, l'étendre sur A8 & A9 puis en A11 -> =A10 etc... n'a pas de sens puisqu'au lieu de mettre la formule, autant y copier le nom directement.

Seule une macro VBA pourrait faire ce que tu veux.

Debrief
 Posté le 14/06/2019 à 12:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

La macro qui fait ça n'est pas bien longue ni compliquée.

Option Explicit

Private Const ColonneNom = "A"
Private Const ColonnePrénom = "B"
Private Const PremièreLigneUtilisée = 6

Sub DéplacerNoms()
Dim DerniereLigneUtilisée As Long
Dim i As Long
Dim Nom As String

With ActiveSheet

'La dernière ligne des prénoms
DerniereLigneUtilisée = .Range(ColonnePrénom & Rows.Count).End(xlUp).Row

i = PremièreLigneUtilisée
Do While i <= DerniereLigneUtilisée
'Nom présent
If Not IsEmpty(.Range(ColonneNom & i)) Then
Nom = .Range(ColonneNom & i).Value

'Suppression ligne nom si pas de prénom
If IsEmpty(.Range(ColonnePrénom & i)) Then
.Rows(i & ":" & i).Delete
DerniereLigneUtilisée = DerniereLigneUtilisée - 1
i = i - 1
End If
End If

'Copie du nom si pas de nom
If Not IsEmpty(.Range(ColonnePrénom & i)) And IsEmpty(.Range(ColonneNom & i)) Then .Range(ColonneNom & i) = Nom
i = i + 1
Loop

End With

MsgBox "Déplacement des noms terminé."

End Sub



Modifié par Debrief le 14/06/2019 13:13
prosper34
 Posté le 14/06/2019 à 18:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Debrief

merci mais la question est comment entrer et utiliser cette macro, je n'ai jamais fait.

Debrief
 Posté le 14/06/2019 à 20:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Cela demande quelques petites manipulations.

  1. Tu télécharges la version "module" de la macro "ModuleDéplacerNoms.bas" ici -> https://www.cjoint.com/c/IFosyDEVWBO
  2. Lorsque ton classeur est ouvert tu appuies sur la touche <Alt> et sur la touche F11 en même temps => La page VBA Project s'affiche.
  3. En haut à gauche, sous ThisWorkbook, clique droit puis Importer un fichier puis choisir le fichier téléchargé "ModuleDéplacerNoms.bas" => il va apparaître au-dessus de ThisWorkbook.
  4. Retour sur la feuille Excel / Onglet Développeur / cliquer sur Macros (à gauche) => une fenêtre s'ouvre avec cette seule macro.
  5. Cliquer Exécuter.

Avec Excel 2007 ou au-delà:
- Si tu veux sauver ton classeur avec la Macro, il va falloir changer son extension de ".xlsx" en ".xlsm".
- Si tu ne veux pas garder la Macro dans le classeur, le traitement étant réalisé, tu auras un message au moment de l'enregistrement auquel il faudra répondre "oui" pour ne pas garder le Projet VBA.



Modifié par Debrief le 14/06/2019 20:42
Papy80
 Posté le 14/06/2019 à 22:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir.

Je n'ai peut être pas tout compris, mais s'il ne s'agit que de descendre toutes tes cellules d'une ligne, le bon vieux copier coller devrait faire l'affaire....... ou insérer une ligne tout en haut...... Mais je n'ai certainement pas compris ce que tu cherches à faire.

prosper34
 Posté le 15/06/2019 à 00:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Papy80

effectivement, tu n'as pas tout compris :

si on insère une cellule au-dessus du nom qui est dans une cellule fusionnée, c'est une ligne de cellules de la largeur de la fusionnée donc tout le tableau qui descend.

d'autre part, il faut copier parfois sur 1 ligne parfois sur plusieurs (dizaines).

merci Debrief, je vais tester, mais pas avant dimanche.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
bloque sur copie cellules à plusieurs conditions
Excel - Copie de cellules selon choix
Macro Copie cellules
créer une copie qui exclut les cellules masquées
Libre Office Calc, taille des cellules réduite
Supprimer le fond couleur de 1 texte copié de 1 pg Web ?
Additionner des cellules contenant une formule
Copié/Collé TEXTE ILLISIBLE !
Vba effacer une plage de cellules dans plusieurs feuilles
Excel 2016 compter cellules vides sous condition
Plus de sujets relatifs à copie de cellules
 > Tous les forums > Forum Bureautique