Copy paste [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
27 septembre 2008
-
Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008
-
Je demande Help, j'ai crée une base de données sous Excel 2003, avec des "userform" qui la gérent.
Je voudrais reprendre par un copier certaines données pointées par un "activecell", mais décalées par rapport à celle-ci et les coller dans une feuille qui me sert de masque pour imprimer ces données.
J'ai les titres de ma feuille à imprimer qui sont gérées par le userform et par le masque de feuille, mais les données de la BDD, je n'arrivent pas à les copier-coller
Je fais un exemple
Article       Référence    DateEntréeStock   DateSortieStock Qté
VHS           Che1            30/08/08                  30/09/08         4
VHS           Che1            27/09/08                  30/09/08         3
VHS           Che1            30/09/08                  30/09/08         6
VHS           Che2            30/08/08                  30/08/08         6
VHS           Che2            02/08/06                  30/08/07         10
VHS           Che3            04/09/06                  31/07/08         7
VHS           Pan1            11/08/07                  08/08/08         11
CD             Pan2            21/03/05                  06/04/08         24
CD             Pan3            06/04/03                  08/05/04         12
CD            Cha1            21/01/08                  21/02/08         10
CD            Cha2            14/07/07                  01/04/08         4

dans la feuille que je voudrais imprimer les données pour l'article VHS (tjs pour l'exemple)
VHS (les titres des articles qui sont déjà mis en place par le userform) et ensuite commençant à la ligne 2
utilisation   Reférence    date             Qté      (les sous titres, mis en forme par la feuille excel)
1                      Che1          30/08/08         4           (les données de la BDD que je n'arrivent pas à copier)
2                      Che1          27/09/08         3
3                      Che1          30/09/08         6
Mon "activecell" pointant sur une données qui est dans la colonne A mais pas obligatoirement en "A1". c'est mon userform qui détermine la position de l'activecell dans la colonne A.
Par avance, je vous remercie et si un bloqueur voudrais quelques conseils sur les userform gérant les BDD excel, je serais son obligé, je ne suis qu'au niveau bon amateur.

5 réponses

Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008

Salut,

je travailles aussi tard en plus pour mon propre projet :-)

si tu souhaites, pour etre plus clair, je te propose de faire un snapshot de ton fichier excel,
une image de la feuille source des données avec le probleme que tu soumets, et la feuille de destination telle que tu veux le resultat.

Tu peux meme te contenter de quelques lignes, je te propose un code plus fourni dnas ces conditions, a toi apres de l'adapter pour etre couvrir tous les cas.

Il est evident que si tu as trop de variabilites dans ton fichier, cela deviendra difficile.
A toi de voir
Manu
_____________________
No problems, only soluces
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

je sais pas, je doit etre fatigué ou autre mais la je comprend rien... ni le probleme ni la question ... donc un bout de code devrait aider.
Messages postés
3
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
27 septembre 2008

Salut Bigfish_le vrai

Merci de prendre en compte mon cas
J'ai développé 90% d'un programme qui gére une base de données et me voici bloqué presque au final.
Je voudrais remplir une feuille qui sera imprimée par rapport à ma feuille BDD. voici un bout de code qui ne fonctionne pas, mais il devrait éclairer
Dim i As Integer
Dim qtéLigne As Integer
qtéligne= 10
i = 1
    Sheets("BDD").Select      'sélection de la feuille Base de données
    ActiveCell(1, 1).Select    'mon userform pointe sur une cellule active
For i = i To qtéLigne            'sélectionne 10 ligne
    Range(Cells(1, 30), Cells(1, 30)).Select 'c'est ici que ça coince, je voudrais une selection décalée des cellules à droite (sur la 30éme et oui la BDD est importante) par rapport à la activecell
Next
    Selection.Copy
   Sheets("FeuilleImpr").select   'feuille "masque" qui sera imprimée
For i = 1 To qtéligne
    Range("C" & 9 + i).Select   'mon collage commence ligne 10 en descendant en colonne C
    Selection.PasteSpecial         'collage de mes lignes, mais ma selection est (cells(1,30) c'est là où je séche
Next

Voilà, j'espére que ceci est plus clair
Encore Merci.
Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008

Salut,

excuses moi, je suis pas sur de comprendre ton code :

Voila ce que je lis... (mes commentaires en rouge)

Dim i As Integer
Dim qtéLigne As Integer
qtéligne= 10
i = 1
    Sheets("BDD").Select      'sélection de la feuille Base de données
    ActiveCell(1, 1).Select    'mon userform pointe sur une cellule active
For i = i To qtéLigne            'sélectionne 10 ligne JE SELECTIONNE 10 fois la meme cellule !!!
    Range(Cells(1, 30), Cells(1, 30)).Select 'c'est ici que ça coince, je voudrais une selection décalée des cellules à droite (sur la 30éme et oui la BDD est importante) par rapport à la activecell TU M'eTONNES C'esT PAS CE QUE TU DEMANDES :-)
Next
AU LIEU DE TA BOUCLE FOR - NEXT ... je ferais
Range(Selection, Selection.End(xlToRight)).Select 
    (VBA est un peu loin pour moi, mais je crois que c'est la bonne instruction)
 
   Selection.Copy
   Sheets("FeuilleImpr").select   'feuille "masque" qui sera imprimée
For i = 1 To qtéligne      JE COLLE DIX FOIS LA MEME CELLULE !!! DANS DIX CELLULES DIFFERENTES
    Range("C" & 9 + i).Select   'mon collage commence ligne 10 en descendant en colonne C
    Selection.PasteSpecial         'collage de mes lignes, mais ma selection est (cells(1,30) c'est là où je séche
Next

Range("C10").Select
Selection.PasteSpecial devrait suffire, sans les for-next.

Enfin, petit truc qui marche plutot pas mal...

Clique sur outils-macro-Enregistrer macro
FAIS SANS TE TROMPER, LES ACTIONS A FAIRE
Une fois terminées, Stoppe l'enregistrement de la macro... Sinon ca va devenir galere :-)

Et hop, direct sur vba pour voir le code. Ca devrait pas etre trop loin de ce que je t'ai corrige !

Bonne chance pour la fin de ta base de données.

_____________________
No problems, only soluces
Messages postés
3
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
27 septembre 2008

Salut 68manu,

"Mon logiciel" devient un gros pavé. Tu es dans le vrai, j'ai essayé tes corrections.
le copier coller ça marche. c'est un progrés, mais il y un mais
J'avoue au départ ma demande était confuse, j'ai voulu faire simple, du moins je le croyais, mais en prenant l'exemple d'une gestion d'une "medialocation", je t'ai certaiment embrouyé. En fait, c'est une gestion d'affûtage d'outil.
- Je voudrais copier coller des cellules qui sont en colonnes (qui sont décalées par rapport à mon activecell) et non en ligne
- Les données a copier sont dans différentes colonnes de la BDD (AD pour les dates,  V pour les Ø ext ... )
- la feuille que je dois imprimer, sur laquelle je colle, comporte des cellules fusionnées
- le collage sur ladite feuille se fait sur des colonnes
Ton code me donne le résulat suivant (la numérotation de la colonne A est une incrémentation par boucle par rapport à un nombre placé dans un textbox de mon userform)
<colgroup><col style=\"WIDTH: 25pt; mso-width-source: userset; mso-width-alt: 1408\" span=\"12\" width=\"33\" /></colgroup>----
Nombre
affûtages, Date, Diamètre
ext., Longueur
de dent, épaisseur, Nbre d'aff.
restant, ----
1,  , 8438, 14, -, 0,23, -, -, -, -, -, -, ----
1,5,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , ----
2,  ,  ,  ,  ,  , ----
----
3,  ,  ,  ,  ,  , ----
----
4,  ,  ,  ,  ,  , ----
----
5,  ,  ,  ,  ,  

Je n'avait pas grand espoir que quelqu'un me réponde, mais c'est super les gens sympas
Je te remercie de travailler aussi tard pour un petit scarabé.