Copier ligne d'un tableau sur un autre si condition
Fermé
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
-
1 nov. 2016 à 20:18
helfy22 Messages postés 11 Date d'inscription mardi 1 novembre 2016 Statut Membre Dernière intervention 8 novembre 2016 - 8 nov. 2016 à 21:46
helfy22 Messages postés 11 Date d'inscription mardi 1 novembre 2016 Statut Membre Dernière intervention 8 novembre 2016 - 8 nov. 2016 à 21:46
A voir également:
- Copier ligne d'un tableau sur un autre si condition
- Tableau croisé dynamique - Guide
- Excel cellule couleur si condition texte - Guide
- Tableau ascii - Guide
- Copier une vidéo youtube - Guide
- Aller à la ligne sur excel - Guide
8 réponses
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
1 nov. 2016 à 22:06
1 nov. 2016 à 22:06
Bonjour
1. je voudrais que la ligne ajoutée se mette en dernière position sur mon tableau
dernière ligne d'une feuille
lifin = Cells.Find("*", , , , xlByRows, xlPrevious).Row
dernière ligne de la colonne A
lifin = Range("A" & Rows.Count).End(xlUp).Row
2. comment faire appel à la macro enregistrée auparavant. Quel instruction faire du genre : =si(A9=oui; j'execute la macro copie;"") ??
If Range("A9")="oui" Then
Call macrocopie
End If
3. ne souhaite pas utiliser la programmation VBA
????
Cdlmnt
1. je voudrais que la ligne ajoutée se mette en dernière position sur mon tableau
dernière ligne d'une feuille
lifin = Cells.Find("*", , , , xlByRows, xlPrevious).Row
dernière ligne de la colonne A
lifin = Range("A" & Rows.Count).End(xlUp).Row
2. comment faire appel à la macro enregistrée auparavant. Quel instruction faire du genre : =si(A9=oui; j'execute la macro copie;"") ??
If Range("A9")="oui" Then
Call macrocopie
End If
3. ne souhaite pas utiliser la programmation VBA
????
Cdlmnt
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
2 nov. 2016 à 20:19
2 nov. 2016 à 20:19
Es tu sûre que c'est une macro excel-vba ?
Un petit exemple sous excel qui réalise ceci
je me place sur la cellule-sélectionne ligne - la copie vers le tableau de la feuille" rebut " et je supprime le contenue de la ligne copiée dans la feuille de départ
http://www.cjoint.com/c/FKctrgwW7On
Cdlmnt
Un petit exemple sous excel qui réalise ceci
je me place sur la cellule-sélectionne ligne - la copie vers le tableau de la feuille" rebut " et je supprime le contenue de la ligne copiée dans la feuille de départ
http://www.cjoint.com/c/FKctrgwW7On
Cdlmnt
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
2 nov. 2016 à 22:08
2 nov. 2016 à 22:08
Bonsoir,
Je ne suis pas sure comme tu dis que c'est une macro excel vba (je travaille avec open office calc...)ca a l'air le même codage pourtant?
Dans le fichier que tu a fait (que j'ai enregistré)
j'ai fait un test sur le fichier : ça ne marche pas : rien ne se passe quand je clique sur le bouton OK
ensuite j'ai assigné le bouton à la macro module1 (clic droit sur le bouton comme tu m'as dit, je vais chercher module1 et assigner ok) et ne marche toujours pas : rien ne se passe : il y a juste une main quand je passe la souris sur le bouton.
NB :J'ai bien réussi à afficher la macro que tu as créée avec ALT F11
Désolée,
il y a qqch qui bloque...
Je ne suis pas sure comme tu dis que c'est une macro excel vba (je travaille avec open office calc...)ca a l'air le même codage pourtant?
Dans le fichier que tu a fait (que j'ai enregistré)
j'ai fait un test sur le fichier : ça ne marche pas : rien ne se passe quand je clique sur le bouton OK
ensuite j'ai assigné le bouton à la macro module1 (clic droit sur le bouton comme tu m'as dit, je vais chercher module1 et assigner ok) et ne marche toujours pas : rien ne se passe : il y a juste une main quand je passe la souris sur le bouton.
NB :J'ai bien réussi à afficher la macro que tu as créée avec ALT F11
Désolée,
il y a qqch qui bloque...
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
3 nov. 2016 à 17:41
3 nov. 2016 à 17:41
il y a qqch qui bloque...
Oui, tu es sous Open Office et non Microsoft Office, donc la macro n'est pas reconnue (ou du moins je le pense). Il te faut mettre ton sujet sur le forum Open Office/Libre Office
Désolé
Cdlmnt
Oui, tu es sous Open Office et non Microsoft Office, donc la macro n'est pas reconnue (ou du moins je le pense). Il te faut mettre ton sujet sur le forum Open Office/Libre Office
Désolé
Cdlmnt
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
3 nov. 2016 à 22:19
3 nov. 2016 à 22:19
Bonsoir,
En effet avec Excel cela fonctionne; J'ai testé à mon travail !!
Par contre je ne souhaite pas effacer toute la ligne mais seulement quelques cellules.
Quelle modification apporter à la macro?
NB :Pour le bouton : nickel j'ai compris!
Sinon, je souhaite exécuter la macro automatiquement et non pas à partir du bouton : cad dès qu'une cellule de la lige = texte1 ou texte2 ou texte3 je veux exécuter la cacro?
Est-ce l'instruction écrite dans le premier message qu'il faut utiliser ? en la modifiant pour mettre texte1 ou texte2 ou texte3 à la place de "oui", comment formuler le "ou"?
If Range("A9")="oui" Then
Call macrocopie
End If
Une fois l'instruction écrite : Est-ce qu'il faut mettre ces instructions dans une macro ? ou écrire l'instruction dans une cellule (ce n'est pas clair pour moi)!!
Après je pense arrêter de t'embêter, car je deviens soulante ?!!
Merci encore pour ton aide.
En effet avec Excel cela fonctionne; J'ai testé à mon travail !!
Par contre je ne souhaite pas effacer toute la ligne mais seulement quelques cellules.
Quelle modification apporter à la macro?
NB :Pour le bouton : nickel j'ai compris!
Sinon, je souhaite exécuter la macro automatiquement et non pas à partir du bouton : cad dès qu'une cellule de la lige = texte1 ou texte2 ou texte3 je veux exécuter la cacro?
Est-ce l'instruction écrite dans le premier message qu'il faut utiliser ? en la modifiant pour mettre texte1 ou texte2 ou texte3 à la place de "oui", comment formuler le "ou"?
If Range("A9")="oui" Then
Call macrocopie
End If
Une fois l'instruction écrite : Est-ce qu'il faut mettre ces instructions dans une macro ? ou écrire l'instruction dans une cellule (ce n'est pas clair pour moi)!!
Après je pense arrêter de t'embêter, car je deviens soulante ?!!
Merci encore pour ton aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
4 nov. 2016 à 18:07
4 nov. 2016 à 18:07
Beaucoup de questions, difficile de répondre sans avoir une idée de la structure de ton fichier
Peux tu envoyer un bout de ton fichier (excel) sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu (en particulier, qu'est ce que tu entends par : "Sinon, je souhaite exécuter la macro automatiquement et non pas à partir du bouton : cad dès qu'une cellule de la lige = texte1 ou texte2 ou texte3 je veux exécuter la cacro?"
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller"
Cdlmnt
Peux tu envoyer un bout de ton fichier (excel) sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu (en particulier, qu'est ce que tu entends par : "Sinon, je souhaite exécuter la macro automatiquement et non pas à partir du bouton : cad dès qu'une cellule de la lige = texte1 ou texte2 ou texte3 je veux exécuter la cacro?"
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller"
Cdlmnt
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
4 nov. 2016 à 18:35
4 nov. 2016 à 18:35
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
4 nov. 2016 à 18:50
4 nov. 2016 à 18:50
petite précision
= texte 1, texte 2, texte 3 cad motifs de rebut: décédé, parti sans laisser d'adresse, réexpédition définitive
= texte 1, texte 2, texte 3 cad motifs de rebut: décédé, parti sans laisser d'adresse, réexpédition définitive
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
Modifié par ccm81 le 4/11/2016 à 21:05
Modifié par ccm81 le 4/11/2016 à 21:05
Un début
http://www.cjoint.com/c/FKetRvFQ1nn
Cdlmnt
http://www.cjoint.com/c/FKetRvFQ1nn
Cdlmnt
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
4 nov. 2016 à 21:05
4 nov. 2016 à 21:05
Une autre possibilité
http://www.cjoint.com/c/FKeufb6ehnn
http://www.cjoint.com/c/FKeufb6ehnn
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
4 nov. 2016 à 22:18
4 nov. 2016 à 22:18
Encore merci pour ton aide, je vais tester les 2 fichiers au bureau demain avec Excel et te tiens au courant.
A très bientôt
Merci
A très bientôt
Merci
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
5 nov. 2016 à 19:09
5 nov. 2016 à 19:09
Ca fonctionne très bien. Un grand merci pour ton aide.
C'est très gentil d'aider les personnes qui en ont besoin et qui sont un peu ignorantes en la matière!!
Je ne vais pas abuser et vais essayer d'avancer toute seule en m'inspirant des solutions à mes premiers problèmes.
A une prochaine fois peut-être si je suis vraiment coincée dans mon projet.
C'est très gentil d'aider les personnes qui en ont besoin et qui sont un peu ignorantes en la matière!!
Je ne vais pas abuser et vais essayer d'avancer toute seule en m'inspirant des solutions à mes premiers problèmes.
A une prochaine fois peut-être si je suis vraiment coincée dans mon projet.
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
5 nov. 2016 à 09:06
5 nov. 2016 à 09:06
Attention, tu as aussi du code dans le module de la feuille piquage
Cdlmnt
Cdlmnt
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
5 nov. 2016 à 20:20
5 nov. 2016 à 20:20
Je ne vois pas de quoi tu parles :(
ccm81
Messages postés
10854
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 avril 2024
2 404
5 nov. 2016 à 21:12
5 nov. 2016 à 21:12
La remarque se réfère au 2° fichier uniquement
Le même avec quelques améliorations et explications
http://www.cjoint.com/c/FKfukZbXcln
Cdlmnt
Le même avec quelques améliorations et explications
http://www.cjoint.com/c/FKfukZbXcln
Cdlmnt
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
6 nov. 2016 à 08:34
6 nov. 2016 à 08:34
C'est plus clair :)
Je testerai lundi.
Encore Merci
Je testerai lundi.
Encore Merci
helfy22
Messages postés
11
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
8 novembre 2016
8 nov. 2016 à 21:46
8 nov. 2016 à 21:46
Bonsoir,
En effet c'est plus clair et ça fonctionne très bien.
Reste à appliquer à mon cas professionnel, j'espère y arriver ...
Il me restera encore du chemin après car je veux mettre en place beaucoup d'autres choses..
Encore merci pour tout , et surtout pour m'avoir lancer mon projet.
En effet c'est plus clair et ça fonctionne très bien.
Reste à appliquer à mon cas professionnel, j'espère y arriver ...
Il me restera encore du chemin après car je veux mettre en place beaucoup d'autres choses..
Encore merci pour tout , et surtout pour m'avoir lancer mon projet.
2 nov. 2016 à 18:24
j'ai essayé de comprendre, mais mon problème est que je suis presque ignorante dans la programmation VBA . Par contre elles sont très simples je l'admet par rapport à la macro que j'ai "créée" en exécutant pas à pas ce que je voulais faire-voir plus bas!!
Je ne vais donc pas chercher à comprendre les instructions mais je souhaite quand même pouvoir les utiliser :
1ère : lifin = Cells.Find("*", , , , xlByRows, xlPrevious).Row
2ème : If Range("A9")="oui" Then
Call macrocopie
End If
comment et où dois-je les copier? dans une cellule? en créant une autre macro?
(Idéalement je voudrais ajouter un bouton sur lequel cliquer pour exécuter la macro, mais on pourra voir ça après)
Sinon autre piste : voici le VBA de la macro très complexe qui s'affiche quand je regarde ce qu'il y a dedans et qui fonctionne partiellement (J'ai enregistré cette macro en exécutant toutes les taches une à une- je me place sur la cellule-sélectionne ligne - la copie vers le tableau de la feuille" rebut " et je supprime le contenue de la ligne copiée dans la feuille de départ"base triée par nom")
REM ***** BASIC *****
sub copier_ligne_dans_rebut_effacer_nom
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$R$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$11:$Q$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$A$6"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "Nr"
args7(0).Value = 8
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args7())
rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "$J$11:$Q$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:DeleteCell", "", 0, Array())
rem ----------------------------------------------------------------------
dim args10(0) as new com.sun.star.beans.PropertyValue
args10(0).Name = "Flags"
args10(0).Value = "SVDT"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args10())
end sub
Quelle manipulation sur l'enregistrement de la macro pas à pas dois je apporter ou quelle modification de cette macro dois je faire pour que la ligne copiée se place à la fin du tableau(en dernière ligne)et non pas toujours sur la même ligne et que ce soit la bonne ligne( qui contient le "oui") qui soit copiée?
Désolée pour la complexité de mes questions, j'espère que je suis quand même assez claire et que qqn pourra m'aider.
Un grand grand Merci par avance.
NB : je peux donner mon pb concret par mail si besoin pour être plus clair ?