VBA Boucle copie/Colle
Résolu/Fermé
A voir également:
- VBA Boucle copie/Colle
- Copie cachée - Guide
- Copie écran samsung - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie disque dur - Guide
- Copie rapide - Télécharger - Gestion de fichiers
12 réponses
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
23 mai 2015 à 18:40
23 mai 2015 à 18:40
Bonjour
Peux tu mettre un bout de fichier au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message
N'oublies pas des explications et des exemples de résultat attendu
Cdlmnt
Peux tu mettre un bout de fichier au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message
N'oublies pas des explications et des exemples de résultat attendu
Cdlmnt
Voici le lien http://www.cjoint.com/data3/3ExtKrR0RrS.htm
En gros j'ai déjà réalisé la partie la plus simple qui consiste uniquement a ouvrir un nouvel onglet "Codes".
Ce que moi je voudrais c'est un exemple pour la partie "gaine" dans l'onglet résultat. Pour l'exemple de la "gaine":
Si le Nombre est supérieur à 0 on récupère le code sur la colonne de Gauche on le copie, et on le modifie en le collant sur l'onglet qui s'ouvrira nommé "codes" de cette façon: CODE,"","NOMBRE",""
en revanche si le nombre est égale à 0 on en tient pas compte et on passe à la suite
En gros j'ai déjà réalisé la partie la plus simple qui consiste uniquement a ouvrir un nouvel onglet "Codes".
Ce que moi je voudrais c'est un exemple pour la partie "gaine" dans l'onglet résultat. Pour l'exemple de la "gaine":
Si le Nombre est supérieur à 0 on récupère le code sur la colonne de Gauche on le copie, et on le modifie en le collant sur l'onglet qui s'ouvrira nommé "codes" de cette façon: CODE,"","NOMBRE",""
en revanche si le nombre est égale à 0 on en tient pas compte et on passe à la suite
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
23 mai 2015 à 20:39
23 mai 2015 à 20:39
Désolé, je ne peux pas lire ton fichier, je t'ai demandé un format excel2003 (fichier/enregistrer sous/Type excel 2003 , .xls)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
23 mai 2015 à 21:12
23 mai 2015 à 21:12
Le fichier est bon mais, tu n'expliques pas
1. comment tu obtiens les deux valeurs de la colonne M
AIRBPN250J,"","5",""
AIRGSN125300,"",'V,""
2. à partir de quoi
3. que doit on en faire
1. comment tu obtiens les deux valeurs de la colonne M
AIRBPN250J,"","5",""
AIRGSN125300,"",'V,""
2. à partir de quoi
3. que doit on en faire
les deux valeurs sont ajouté directement c'était pour que je me souvienne de l'exemple
Se que je veux c'est :
Sur l'onglet gaine: que tout le tableau soit traité, Que toutes les lignes possédant une valeur supérieur à un soit retenue. Si la valeur dans la colonne "Nombre" est inférieur à 0 on s'en fou, si la valeur est supérieur on copie le code qui est dans la colonne code et on le mes sous le format que tu as put voir dans la colonne M. Tout ça le transféré dans l'onglet "Code" les uns après les autres.
Je sais pas si tu visualises ^^
Se que je veux c'est :
Sur l'onglet gaine: que tout le tableau soit traité, Que toutes les lignes possédant une valeur supérieur à un soit retenue. Si la valeur dans la colonne "Nombre" est inférieur à 0 on s'en fou, si la valeur est supérieur on copie le code qui est dans la colonne code et on le mes sous le format que tu as put voir dans la colonne M. Tout ça le transféré dans l'onglet "Code" les uns après les autres.
Je sais pas si tu visualises ^^
un exemple :
Onglet "Résultat"
B C
AIRGSN250300 0
AIRGSN315300 8
AIRGSN125300 0
AIRGSN355300 15
On copie uniquement la ligne 2 et 4, et on le colle dans l'onglet "codes" en modifiant le code qui sera sous cette forme : CODE,"","NOMBRE",""
Soit dans l'onglet dans une cellule unique
A
AIRGSN315300,"","8",""
AIRGSN355300,"","15,""
Onglet "Résultat"
B C
AIRGSN250300 0
AIRGSN315300 8
AIRGSN125300 0
AIRGSN355300 15
On copie uniquement la ligne 2 et 4, et on le colle dans l'onglet "codes" en modifiant le code qui sera sous cette forme : CODE,"","NOMBRE",""
Soit dans l'onglet dans une cellule unique
A
AIRGSN315300,"","8",""
AIRGSN355300,"","15,""
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
23 mai 2015 à 21:44
23 mai 2015 à 21:44
1. Sur l'onglet gaine: que tout le tableau soit traité
Pas d'onglet gaine dans ton fichier veux tu parler du tableau gaine de l'onglet résultat?
2. S'il s'agit de ça, peux tu me donner le résultat attendu pour les trois lignes
Pas d'onglet gaine dans ton fichier veux tu parler du tableau gaine de l'onglet résultat?
2. S'il s'agit de ça, peux tu me donner le résultat attendu pour les trois lignes
1000 AIRGSN1000300 2
900 AIRGSN900300 3
800 AIRGSN800300 0
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 23/05/2015 à 21:46
Modifié par ccm81 le 23/05/2015 à 21:46
et
3. Que doit on alors mettre dans la feuille Code (colonne Code, colonne Qte
3. Que doit on alors mettre dans la feuille Code (colonne Code, colonne Qte
Oui le tableau excuse moi.
Donc si j'ai se que tu me proposes il faut que dans l'onglet code j'ai :
A
Ligne1
Ligne2 AIRGSN1000300,"","2",""
Ligne3 AIRGSN900300,"","3",""
Dans la ligne 1 de la colonne A j'ai programmé un truc pour qu'il me laisse un petit texte ^^
Donc si j'ai se que tu me proposes il faut que dans l'onglet code j'ai :
A
Ligne1
Ligne2 AIRGSN1000300,"","2",""
Ligne3 AIRGSN900300,"","3",""
Dans la ligne 1 de la colonne A j'ai programmé un truc pour qu'il me laisse un petit texte ^^
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
23 mai 2015 à 22:22
23 mai 2015 à 22:22
https://www.cjoint.com/?3Exwv2X3HOB
Lancement par Ctrl+k
Le code est dans Module 1
Bonne nuit
Lancement par Ctrl+k
Le code est dans Module 1
Bonne nuit
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
23 mai 2015 à 22:31
23 mai 2015 à 22:31
Plus correct, remplaces la procedure OK par celle ci
Cdlmnt
Public Sub OK() Dim liFR As Long, lifinFR As Long, TC(), s As String, nbCod As Long, q As Long With Sheets(FR) lifinFR = .Cells(Rows.Count, coCodFR).End(xlUp).Row nbCod = 0 For liFR = lidebFR To lifinFR s = .Cells(liFR, coCodFR).Value q = .Cells(liFR, coCodFR + 1) If q <> 0 Then nbCod = nbCod + 1 ReDim Preserve TC(1 To nbCod) s = s & "," & """" & q & """" & "," & """""" TC(nbCod) = s End If Next liFR End With Sheets(FC).Cells(lidebFC, coCodFC).Resize(nbCod, 1) = Application.Transpose(TC) End Sub
Cdlmnt
Je te remercie !
Juste quand je lance il me dit que j'ai une erreur :
Sur la ligne en Gras ! ^^
Sinon merci beaucoup c'est gentil !
Juste quand je lance il me dit que j'ai une erreur :
Public Sub OK()
Dim liTC As Long, lifinFR As Long, TC(), s As String, nbCod As Long, q As Long
With Sheets(FR)
lifinFR = .Cells(Rows.Count, coCodFR).End(xlUp).Row
nbCod = lifinFR - lidebFR - 1
ReDim TC(1 To nbCod)
For liTC = 1 To nbCod
s = .Cells(liTC + lidebFR - 1, coCodFR).Value
q = .Cells(liTC + lidebFR - 1, coCodFR + 1)
If q <> 0 Then
s = s & "," & """" & q & """" & "," & """"""
TC(liTC) = s
End If
Next liTC
End With
Sheets(FC).Cells(lidebFC, coCodFC).Resize(nbCod, 1) = Application.Transpose(TC)
End Sub
Sur la ligne en Gras ! ^^
Sinon merci beaucoup c'est gentil !
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 24/05/2015 à 15:17
Modifié par ccm81 le 24/05/2015 à 15:17
1. Juste quand je lance il me dit que j'ai une erreur :
sur mon fichier (lui chez moi, il fonctionne) ou sur le tien
as tu bien recopié et adapté les valeurs des constantes (nom des feuilles en particulier)
Public Const FR = "Résultat"
Public Const coCodFR = 2
Public Const lidebFR = 3
Public Const FC = "Codes"
Public Const coCodFC = 1
Public Const lidebFC = 2
2. mais prend plutôt le code du message #12 (plus propre)
sur mon fichier (lui chez moi, il fonctionne) ou sur le tien
as tu bien recopié et adapté les valeurs des constantes (nom des feuilles en particulier)
Public Const FR = "Résultat"
Public Const coCodFR = 2
Public Const lidebFR = 3
Public Const FC = "Codes"
Public Const coCodFC = 1
Public Const lidebFC = 2
2. mais prend plutôt le code du message #12 (plus propre)
C'est Bon ça marche !! Merci beaucoup !
Juste si je peux te poser 2 autres questions, parce que j'aimerais me débrouiller pour faire la suite de mon programme, j'aurais donc voulue savoir pour le tableau OBMC comment je peux le programmer pour avoir le même résultat que tu as fais? Car la je peux pas fixer la cellule de départ comme elle est variable en fonction du tableau Gaine dans l'onglet "codes". Vois tu ou je veux en venir ?
Et mon autre question c'est, où as tu appris à programmer ?
Juste si je peux te poser 2 autres questions, parce que j'aimerais me débrouiller pour faire la suite de mon programme, j'aurais donc voulue savoir pour le tableau OBMC comment je peux le programmer pour avoir le même résultat que tu as fais? Car la je peux pas fixer la cellule de départ comme elle est variable en fonction du tableau Gaine dans l'onglet "codes". Vois tu ou je veux en venir ?
Et mon autre question c'est, où as tu appris à programmer ?
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
24 mai 2015 à 16:55
24 mai 2015 à 16:55
1. pour le tableau OBMC comment je peux le programmer pour avoir le même résultat que tu as fais
Tout dépend de ce que tu veux faire.
Il va falloir définir complètement le scénario, c'est à dire comment tu envisages l'utilisation de ton fichier, qu'as tu besoin de faire, comment, etc ...
Par exemple : Mes tableaux vont évoluer et à chaque évolution, je veux transférer à l'aide d'un bouton, les 3 tableaux dans les colonnes A et B la feuille Codes
2. c'est, où as tu appris à programmer ?
pourquoi cette question ?
Tout dépend de ce que tu veux faire.
Il va falloir définir complètement le scénario, c'est à dire comment tu envisages l'utilisation de ton fichier, qu'as tu besoin de faire, comment, etc ...
Par exemple : Mes tableaux vont évoluer et à chaque évolution, je veux transférer à l'aide d'un bouton, les 3 tableaux dans les colonnes A et B la feuille Codes
2. c'est, où as tu appris à programmer ?
pourquoi cette question ?
Euh si je te pose cette question c'est parce que j'aimerais bien apprendre de façon concrète également, si tu as appris sur internet par exemple, je veux bien tes sources ou autres.
Sinon, là tu m'as programmé mon tableau Gaine qui me copie et modifie le texte en le collant dans 'l'onglet "codes" si la valeur du nombre est supérieur à 1, pour mes autres tableaux ( par exemple le tableau "OBMC") je veux faire la même chose que tu as fais pour les gaines mais mettre le résultat à la suite des codes de gaines dans l'onglet "codes". Le format reste le même c'est à dire du type : CODE,"","NOMBRE",""
En gros c'est un logiciel qui m'évite de recopier tous les codes manuellement car c'est assez pénible et répétitif. Quand je vais faire une étude je remplis le tableau "quantitatif" qui me chiffre directement mes tableaux dans l'onglet "Résultat", j'ai crée cette onglet car les codes peuvent changer, puis à partir de là me mettre tous mes outils dont leurs nombre est supérieur à 0 sous le format que tu as programmé. J'espère être assez précis
Mais le truc c'est que le nombre de ligne des codes pour les gaines étant variable je peux pas les fixées comme tu as put le faire pour traiter le tableau des gaines.
Sinon, là tu m'as programmé mon tableau Gaine qui me copie et modifie le texte en le collant dans 'l'onglet "codes" si la valeur du nombre est supérieur à 1, pour mes autres tableaux ( par exemple le tableau "OBMC") je veux faire la même chose que tu as fais pour les gaines mais mettre le résultat à la suite des codes de gaines dans l'onglet "codes". Le format reste le même c'est à dire du type : CODE,"","NOMBRE",""
En gros c'est un logiciel qui m'évite de recopier tous les codes manuellement car c'est assez pénible et répétitif. Quand je vais faire une étude je remplis le tableau "quantitatif" qui me chiffre directement mes tableaux dans l'onglet "Résultat", j'ai crée cette onglet car les codes peuvent changer, puis à partir de là me mettre tous mes outils dont leurs nombre est supérieur à 0 sous le format que tu as programmé. J'espère être assez précis
Mais le truc c'est que le nombre de ligne des codes pour les gaines étant variable je peux pas les fixées comme tu as put le faire pour traiter le tableau des gaines.
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 24/05/2015 à 17:27
Modifié par ccm81 le 24/05/2015 à 17:27
Un exemple parmi d'autres ...
https://www.cjoint.com/?3EyrvTNo5AV
RQ. le nombre de ligne des codes pour les gaines étant variable je peux pas les fixées comme tu as put le faire pour traiter le tableau des gaines.
Ce nombre n'est pas fixé dans le programme
lifinFR = .Cells(Rows.Count, co).End(xlUp).Row
renvoie la dernière ligne non vide de la colonne co donc, s'il y a 500 lignes, lifinFR vaudra 500
Cdlmnt
https://www.cjoint.com/?3EyrvTNo5AV
RQ. le nombre de ligne des codes pour les gaines étant variable je peux pas les fixées comme tu as put le faire pour traiter le tableau des gaines.
Ce nombre n'est pas fixé dans le programme
lifinFR = .Cells(Rows.Count, co).End(xlUp).Row
renvoie la dernière ligne non vide de la colonne co donc, s'il y a 500 lignes, lifinFR vaudra 500
Cdlmnt
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
24 mai 2015 à 17:41
24 mai 2015 à 17:41
De rien,
Si c'est fini, merci de mettre le sujet à Résolu (en haut à droite de ton premier message)
Bonne fin de journée
Si c'est fini, merci de mettre le sujet à Résolu (en haut à droite de ton premier message)
Bonne fin de journée