VB définir un range
Résolu/Fermé
margir4233
Messages postés
67
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
22 février 2023
-
17 juin 2016 à 15:45
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023 - 18 juin 2016 à 14:55
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023 - 18 juin 2016 à 14:55
A voir également:
- Impossible de définir la propriété hidden de la classe range
- Winmend folder hidden - Télécharger - Confidentialité
- Retrouver photo de classe gratuitement - Forum Réseaux sociaux
- Ou peut-on retrouver d'anciennes photos d'école et d'anciens élèves ? ✓ - Forum Loisirs / Divertissements
- Définir google comme page d'accueil - Guide
- Hidden process finder - Télécharger - Confidentialité
7 réponses
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
17 juin 2016 à 15:51
17 juin 2016 à 15:51
Bonjour
Pour récupérer la dernière ligne non vide de ton onglet
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Puis
plage = "A7:J" & DerLig
Et l'appel à ta procédure
Call ClearContent("CommandeJour", True, plage)
Cdlmnt
Pour récupérer la dernière ligne non vide de ton onglet
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Puis
plage = "A7:J" & DerLig
Et l'appel à ta procédure
Call ClearContent("CommandeJour", True, plage)
Cdlmnt
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
17 juin 2016 à 16:43
17 juin 2016 à 16:43
Peux tu envoyer le code de
1. La procédure ClearContent
2. La procédure qui contient l'appel à ClearContent
Ou mieux
Peux tu envoyer la partie concernée de ton fichier, 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
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
1. La procédure ClearContent
2. La procédure qui contient l'appel à ClearContent
Ou mieux
Peux tu envoyer la partie concernée de ton fichier, 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
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
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
17 juin 2016 à 16:58
17 juin 2016 à 16:58
Je t'ai fait un petit exemple
http://www.cjoint.com/c/FFro5NyM27e
Cdlmnt
http://www.cjoint.com/c/FFro5NyM27e
Cdlmnt
margir4233
Messages postés
67
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
22 février 2023
17 juin 2016 à 17:14
17 juin 2016 à 17:14
Merci ccm81
Je pense que c'est effectivement le code de ClearContent qui doit bloquer le tout.
Voici le code, donc faudrait que je remplace ce qui concerne le range ci-dessous par P ou Plage que j'ai défini comme tu m'as montré?
Sub ClearContent(SheetSource As String, WithRange As Boolean, Optional Range As String)
UnProtectSheet ("CommandeJour")
Worksheets(SheetSource).Range(Range).ClearContents
ProtectSheet ("CommandeJour")
End Sub
Je pense que c'est effectivement le code de ClearContent qui doit bloquer le tout.
Voici le code, donc faudrait que je remplace ce qui concerne le range ci-dessous par P ou Plage que j'ai défini comme tu m'as montré?
Sub ClearContent(SheetSource As String, WithRange As Boolean, Optional Range As String)
UnProtectSheet ("CommandeJour")
Worksheets(SheetSource).Range(Range).ClearContents
ProtectSheet ("CommandeJour")
End Sub
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
17 juin 2016 à 17:18
17 juin 2016 à 17:18
As tu jeté un œil sur l'exemple que je t'ai proposé ?
margir4233
Messages postés
67
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
22 février 2023
17 juin 2016 à 17:32
17 juin 2016 à 17:32
Un gros merci pour ta patience, je crois plus ça va plus je m'enfonce...
Voici le fichier, c'est dans l'onglet CommandeJour
C'est le bouton Finaliser la commande du jour
Le but c'est de sélectionner la plage de lignes non vide dans CommandeJour et d'aller copier à la suite dans CommandeFacturation
http://www.cjoint.com/c/FFrpCJ1PtKa
Voici le fichier, c'est dans l'onglet CommandeJour
C'est le bouton Finaliser la commande du jour
Le but c'est de sélectionner la plage de lignes non vide dans CommandeJour et d'aller copier à la suite dans CommandeFacturation
http://www.cjoint.com/c/FFrpCJ1PtKa
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
Modifié par ccm81 le 17/06/2016 à 18:05
Modifié par ccm81 le 17/06/2016 à 18:05
Le code est dans Module 1 (j'ai fait simple)
J'ai affecté la macro Transfert_CJ_CF au bouton "Sauvegarder la commande"
J'ai supposé qu'après le transfert, les données sont effacées dans la feuille "CommandeJour"
http://www.cjoint.com/c/FFrp6zwmV2e
Cdlmnt
J'ai affecté la macro Transfert_CJ_CF au bouton "Sauvegarder la commande"
J'ai supposé qu'après le transfert, les données sont effacées dans la feuille "CommandeJour"
http://www.cjoint.com/c/FFrp6zwmV2e
Cdlmnt
margir4233
Messages postés
67
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
22 février 2023
17 juin 2016 à 18:15
17 juin 2016 à 18:15
Un grand merci ccm81
J'apprend par moi même, c'est pas évident, une chance qu'il y a des gens généreux comme ceux qui partage sur ce forum.
J'essaie de contribuer mais en VB je ne suis pas de calibre (encore...)
C'est très apprécié!
J'apprend par moi même, c'est pas évident, une chance qu'il y a des gens généreux comme ceux qui partage sur ce forum.
J'essaie de contribuer mais en VB je ne suis pas de calibre (encore...)
C'est très apprécié!
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
17 juin 2016 à 18:19
17 juin 2016 à 18:19
De rien
Si c'est fini, du moins pour aujourd'hui ;-) peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Bonne fin de journée
Si c'est fini, du moins pour aujourd'hui ;-) peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Bonne fin de journée
margir4233
Messages postés
67
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
22 février 2023
17 juin 2016 à 19:35
17 juin 2016 à 19:35
Allo
On y presque, il n'y a que le bout de la macro qui va copier dans CommandeFacturation
plage.Copy Sheets(CFact).Cells(lifinCF + 1, 1)
ça ne fait rien dans mon fichier (j'ai dû reprendre mon fichier avant de te l'envoyer car j'ai la dernière version d'excel et j'avais des messages d'erreur de version)
Pourtant en pas à pas, ça fonctionne très bien dans le fichier que tu m'as envoyé.
Est-ce que ça peut être parce que j'ai Excel 2016?
On y presque, il n'y a que le bout de la macro qui va copier dans CommandeFacturation
plage.Copy Sheets(CFact).Cells(lifinCF + 1, 1)
ça ne fait rien dans mon fichier (j'ai dû reprendre mon fichier avant de te l'envoyer car j'ai la dernière version d'excel et j'avais des messages d'erreur de version)
Pourtant en pas à pas, ça fonctionne très bien dans le fichier que tu m'as envoyé.
Est-ce que ça peut être parce que j'ai Excel 2016?
ccm81
Messages postés
10850
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 mars 2024
2 403
18 juin 2016 à 11:11
18 juin 2016 à 11:11
1. Est-ce que ça peut être parce que j'ai Excel 2016
je ne pense pas mais avec mon vieil excel 2003 ....
Quelques idées
1. ça ne fait rien dans mon fichier
1.1. as tu un message d'erreur ?
1.2. as tu affecté la macro au bouton ?
1.3. dans le fichier que tu m'avais envoyé et dans la feuille Commandefacturation il y avait des lignes après les premières lignes vides (vers les n° 200), que j'ai supprimées, vérifies ce qu'il y a au fond de cette feuille
2. les noms des feuilles concernées sont ils corrects (dans la macro) ?
3. exécutes là en pas à pas et passes sur les variables pour contrôler leur valeur
4. insères la ligne soulignée pour voir (et contrôler) l'adresse de la plage à copier
Set plage = .Range(.Cells(lidebCJ, 1), .Cells(lifinCJ, cofinCJ))
MsgBox plage.Address
je ne pense pas mais avec mon vieil excel 2003 ....
Quelques idées
1. ça ne fait rien dans mon fichier
1.1. as tu un message d'erreur ?
1.2. as tu affecté la macro au bouton ?
1.3. dans le fichier que tu m'avais envoyé et dans la feuille Commandefacturation il y avait des lignes après les premières lignes vides (vers les n° 200), que j'ai supprimées, vérifies ce qu'il y a au fond de cette feuille
2. les noms des feuilles concernées sont ils corrects (dans la macro) ?
3. exécutes là en pas à pas et passes sur les variables pour contrôler leur valeur
4. insères la ligne soulignée pour voir (et contrôler) l'adresse de la plage à copier
Set plage = .Range(.Cells(lidebCJ, 1), .Cells(lifinCJ, cofinCJ))
MsgBox plage.Address
margir4233
Messages postés
67
Date d'inscription
mardi 12 avril 2016
Statut
Membre
Dernière intervention
22 février 2023
18 juin 2016 à 14:55
18 juin 2016 à 14:55
ccm81, tu est génial ou géniale!!!
Effectivement, il y avait des lignes copiées vers les 200 et ça copiait très bien mais à la suite!
Oh que ça fait ma journée ça, un immmmmmense merci, t'a pas idée.
Et je retiens aussi les trucs en point 3 et 4
Génial!
Bonne journée :) et encore merci!!!!
Effectivement, il y avait des lignes copiées vers les 200 et ça copiait très bien mais à la suite!
Oh que ça fait ma journée ça, un immmmmmense merci, t'a pas idée.
Et je retiens aussi les trucs en point 3 et 4
Génial!
Bonne journée :) et encore merci!!!!
17 juin 2016 à 16:15
17 juin 2016 à 16:39
Ca me marque l'erreur suivante
Erreur de compilation: Type d'argument ByRef incompatible