Copier des lignes d'une cellule d'un feuille sans une autre feuille

  • Initiateur de la discussion Initiateur de la discussion blanco31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

blanco31

Guest
Bonsoir,

Ayant très peu de connaissance en Macro excel, je souhaite transcrire mon script ci-dessous en VBA dans mon fichier :

Recherche dans la colonne AE (1500 lignes)
Si = DSK001 et AF=1 (Nb =1)
Copier de AK (Feuil IMMO) dans B (Feuil DSK001)
Copier colonne AL (Feuil IMMO) dans colonne A (Feuil DSK001)
Si (NB>1) créer le nombre de ligne correspondant à Nb ( Ex : 6 => 6 lignes vides) // avec toujours la condition du DSK001
Si "PO" contient dans la colonne AL (Feuil IMMO)
ajouter le chiffre 0 dans la colonne H (Feuil DSK001)

Je dois appliquer cette moulinette pour les autres DSK : DSK005, DSK009, DSK010 et DSK011.
Merci
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Re

Bah ce n'est pas ce que fait déjà cette macro ???
Code:
Private Sub ReInit()
Dim i As Byte
    For i = 2 To Sheets.Count
    Sheets(i).Rows("2:12345").Clear
    Next
Sheets(1).Activate
End Sub
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

De mon côté, il l'efface les données dans la feuille IMMO !?
Sur ton 1er script , ça copier bien sur les différents DSK mais si je clique à nouveau il m'ajoute une 2ème fois sauf sur le DSK005 ou rien ne se copier.🙁
Cdt
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Re


Et comme cela ?
Code:
Private Sub ReInit()
Dim i As Byte
    For i = 2 To Sheets.Count
    If Sheets(i).Name Like "DSK*" Then
    MsgBox Sheets(i).Name 'juste pour test
    Sheets(i).Rows("2:12345").Clear
    End If
    Next
Sheets(1).Activate
End Sub

Pour plus de compréhension, joint un exemple de PJ qui sera le résultat voulu après l'exécution de la macro
(donc avec les changements opérés sur toutes les feuilles)
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Re,

Voici le fichier avec les modifs..

Si je clique une 2e fois, je dois pouvoir retrouver les mêmes valeurs dans les DSK...

Les lignes "plusieurs machines" comportent plusieurs DSK.

J'espère que ce sera plus lisible. 🙂

Merci
cdt
 

Pièces jointes

Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonjour à tous

Je ne comprends pas ce tu veux dire ou souhaite faire.
Tu peux réexpliquer les choses de A à Z avec plus de détails, stp.

Pourquoi relancer la macro une seconde fois, le classeur n'aura pas changé entre temps, non ?
Le contenu des feuilles DSK* sera identique à ce qu'il était lors de la 1ère exécution de la macro.

Si la procédure Reinit te gêne il suffit de la mettre en commentaire dans MainProc.

Pour plus de compréhension, joint un exemple de PJ qui sera le résultat voulu après l'exécution de la macro
(donc avec les changements opérés sur toutes les feuilles)
Je parlais du résultat après l’exécution
(donc on doit voir les effets de la réinitialisation dont tu parles or on ne la voit pas sur ta dernière pièce jointe,non ?)

Donc effacer le contenu des DSK aprés lancement de la macro.
 
Dernière édition:
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonjour Staple1600,

Le fichier envoyé est bien le résultat obtenu ... On retrouve les DSK copiés à partir de la base IMMO.
j'ai mis en plus des commentaires afin que tu puisses me comprendre mais ce que tu ne saisis pas , c'est la réinitialisation de la macro pour refaire la copie dans les DSK.
Normalement dans mon dernier fichier, tu vois l'aprés exécution de la macro avec chaque DSK rempli... La bulle ou j'ai noté "correspond au Nbre DSK" veut dire que je n'ai pas encore les noms des personnes et leurs machines.
J'espère que je ne t'ai pas trop embrouillé dans mes explications..et je remet le fichier joint.

Nous ne sommes pas loin de la solution..que tu m'as proposé..
cdt
 

Pièces jointes

Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonsoir àtous

blanco31
Si je mets des commentaires dans le code VBA, c'est dans l'espoir que le demandeur les lise
(Ils étaient dans le message #4)
'Recherche dans la colonne AE (1500 lignes)
'Si = DSK001 et AF=1 (Nb =1)
'Copier de AK (Feuil IMMO) dans B (Feuil DSK001)
'Copier colonne AL (Feuil IMMO) dans colonne A (Feuil DSK001)

Donc actuellement la macro ne fait que ce que les commentaires indiquent (pas plus)
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonsoir,

je reprend donc les commentaires afin d'y rajouter des lignes supplémentaires pour completer la macro :
----------------
'A chaque exécution de la macro , effacer contenu des onglets DSK001, DSK005, ....
'Début Recherche pour chaque DSK....
'Recherche dans la colonne AE (1500 lignes)
'Si = DSK001 et AF=1 (Nb =1)
'Copier de AK (Feuil IMMO) dans B (Feuil DSK001)
'Copier colonne AL (Feuil IMMO) dans colonne A (Feuil DSK001)
'Si AL (Feuil IMMO) du DSK001 contient "PO" => écrire 0 dans H
'Si AL (Feuil IMMO) du DSK001 contient "UC" => écrire 1 dans H

Sinon Si = DSK001 et AF > 1 ( NB> 1)
Copier Nb ligne dans A et copier AK de DSK001 dans colonne B de Feuil DSK001 ( Feuil = onglet)

fin
-----------------
Est-ce que c'est plus parlant ?😎
cdt
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Re

Décidément on a du mal à se comprendre
Si je n'ai mis qu'une partie de tes commentaires c'est que ma macro ne fait que cette partie
Si = DSK001 et AF=1 (Nb =1)
Copier de AK (Feuil IMMO) dans B (Feuil DSK001)
Copier colonne AL (Feuil IMMO) dans colonne A (Feuil DSK001)


Et je ne vois toujours pas ce que tu veux dire par:
Par contre, Est-ce qu'il est possible lorsque je relance à macro, que les copies se réinitialisent ? ( pour ne pas avoir des lignes en doublon).

N'oublie pas que nous ne sommes pas dans ta tête, nous qui sommes extérieur à ta question.
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

RE,

Désolé Staple1600, je pensais bien faire en repartant sur le 1er script que tu m'as transmis. Il me semble le plus proche de ce que je souhaite.
Je vais essayer de m'expliquer le plus simple possible ... 🙂

Concernant cette phrase :
Par contre, Est-ce qu'il est possible lorsque je relance à macro, que les copies se réinitialisent ? ( pour ne pas avoir des lignes en doublon).
Je voulais dire que à chaque exécution de la macro, je voulais effacer les données copiées dans chaque Feuil DSK001, 005, etc...
J'ai donc rajouter une ligne à l'algo :
'A chaque exécution de la macro , effacer contenu des onglets DSK001, DSK005, ....
Est-ce que l'on peut ajouter cette manip dans le 1er script ?
C'est plus parlant pour toi ? tu me dis..
cdt
 
Dernière modification par un modérateur:
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonjour à tous

blanco31
😕🙄😕🙄😕🙄😱😕🙄
C'est déjà ce fait que fait la macro ReInit, non ?
VB:
Private Sub ReInit()
Dim i As Byte
'On boucle uniquement sur les feuilles DSK
    For i = 2 To Sheets.Count
    If Sheets(i).Name Like "DSK*" Then
'On efface les lignes : de la ligne 2  la ligne 12 345
    Sheets(i).Rows("2:12345").Clear
    End If
    Next
Sheets(1).Activate
End Sub

Et utilisée dans MainProc, on a dans l'ordre : effacement du contenu des feuilles DSK puis copie des données
VB:
Sub MainProc()
ReInit 'effacement
mCopie 'copie
End Sub
 
Dernière édition:
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonjour,

En fait, çà efface bien les feuilles DSK mais çà ne me fait plus de copie maintenant ? ! :-(
Ou je dois mettre le bouton macro ? quand quelle feuille ?
on va y arriver 🙂
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonjour à tous

Si tu effaces les données précédemment copiées,( déjà pourquoi les copier si il faut les effacer lors de la prochaine éxécution de la macro ?)

Actuellement la macro fait ceci:
Elle efface le contenu (sauf les entêtes) des feuilles DSK
puis copie selon les conditions indiquées dans les commentaires.
Donc si tu lances plusieurs fois la copie sans qu'il y ait de changement sur la feuille IMMO, tu auras toujours les mêmes données en recopie et toujours à la même place ???????

Donc pour essayer d'éclaircir les choses, postes un fichier joint ainsi fait (zippes le avant de le joindre pour réduire sa taille)
Un classeur avec huit feuilles
IMMO
IMMO1, IMMO2, ... IMMO3 : ces feuilles seront la copie de la feuille IMMO après 1,2,3 exécution de la macro
(où l'on verra ce qui change entre caque exécution)
DSK1
e1DSK1, e2DSK1,e3DSK1
ces feuilles seront la copie manuelle de la feuille IMMO après 1,2,3 exécution de la macro
(où l'on verra ce qui a changé entre caque exécution)
(ou l'on verra ce qui change entre caque éxécution)

Donc tu lances une fois la macro et tu copies la feuille DSK1 en e1DSK1 et tu indiques en couleur ce qui a changé
(tu copies également la feuille IMMO en en IMMO1)
et tu refais deux fois cette manip.

Si après tout cela, je n'ai toujours pas compris ce que tu veux, j'en appelle à Sainte Rita ou au Voodoo child
(il m'inspire toujours ce petit gars)
 
Re : Copier des lignes d'une cellule d'un feuille sans une autre feuille

Bonjour,

Après plusieurs vérification, je vais me contenter de ta macro e base qui m'a fait bien avancé. Pour le reste, je ferai les manips à la main mais dans tous les cas, je te remercie pour ton aide et ton temps pris à m'aider.

je pense que je me complique les choses à vouloir réinitialiser la macro alors qu'une seule copie suffira. 😉

Merci pour tout
A bientot
cdt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
839
Retour