Problème de copier coller

bonjour

me revoila avec un nouveau problème , l'apprentissage est dur mais intéressant .

j'essai de copier une serie de tableau pour faire un récapitulatif

voici le code

Sub copie_matchs_poules()

Dim nbp As Integer 'nombre de poule
Dim i As Integer 'compteur
Dim c As Integer ' colonne de la 1ere cellule a copier
Dim lig As Integer
Dim lig1 As Integer
Dim ligc1 As Integer

Sheets("poules-équipes").Select

co1 = "1" 'colonne de la 1ere cellule a copier
co2 = "3" 'colonne de la derniere cellule a copier
lig1 = Range("b40") ' ligne de la derniere cellule a copier
nbp = "1" ' cellule contenant le nombre de poules
ligc1 = "5" ' numero de la ligne ou l'on colle les cellules

For i = 1 To nbp ' boucle nb de poules

Sheets("poules-équipes").Select

If lig1 = "3" Then
lig = "17"
ElseIf lig1 = "4" Then
lig = "20"
ElseIf lig1 = "5" Then
lig = "24"
ElseIf lig1 = "6" Then
lig = "29"
End If

Feuil1.Range(Cells(15 & co1), Cells(lig & co2)).Copy ' copie des cellules pour liste matchs

Feuil3.Cells(ligc1 & 1).Select
ActiveSheet.Paste

co1 = co1 + 3
co2 = co2 + 3
ligc1 = Feuil3.Cells(65535, 1).End(xlUp)(2)

Next

End Sub

mais cela ne fonctionne , si vous avez une idée je suis preneur car je sèche un peu


quelques explications :

j'ai mis nbp a 1 c'est juste pour éviter plusieurs boucle car je ne suis pas sur du tout que la ligne

ligc1 = Feuil3.Cells(65535, 1).End(xlUp)(2)

fonctionne

lig1 représente le nombre d'équipes /poule

lig représente la dernière ligne a coller

si il y a des choses que vous ne comprenez pas n'hésitez pas a me demander

je vous remercie par avance

10classeur1.xlsm (52.33 Ko)

Bonjour

A vérifier

merci a 1ere vu ca l'air de fonctionner , maintenant il va va falloir que j'arrive a comprendre comment tu as fait

si j'ai un soucis je te tiens au courant

Banzai64 a écrit :

Bonjour

A vérifier

je viens d'essayer de modifier le code que vous m'avez donner car mes données a copier ne sont pas les une a coté des autres , et j'ai un petit soucis

ca fonctionne tres bien pour domicile /extérieur/arbitrage , mais pas pour journée et poule .

je n'arrive pas a trouver l'erreur , pouvez vous me donner un coup de main

Option Explicit
Sub copie_essai()

Dim I2 As Integer, Colonne2 As Integer '
Dim DerLigne2 As Long, DerLigne As Long

Sheets("poules-équipes").Select

  Application.ScreenUpdating = False

  With Sheets("liste matchs")
    .Range("e10:e90").ClearContents
    .Range("h10:H90").ClearContents
    .Range("i10:i90").ClearContents
    .Range("b10:c90").ClearContents

    For I2 = 1 To Sheets("infos").Range("D2") 'compteur jusqu'a valeur nb poule

      Colonne2 = 1 + ((I2 - 1) * 3)

        DerLigne2 = Cells(30, Colonne2).End(xlUp).Row ' derniere ligne equipes/arbitrage
        DerLigne = Cells(65, Colonne2).End(xlUp).Row ' derniere ligne journée/poule

        Range(Cells(15, Colonne2), Cells(DerLigne2, Colonne2)).Copy  ' copy domicile

      .Range("e" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

        Range(Cells(15, Colonne2 + 1), Cells(DerLigne2, Colonne2 + 1)).Copy ' copy exterieur

      .Range("h" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

        Range(Cells(15, Colonne2 + 2), Cells(DerLigne2, Colonne2 + 2)).Copy ' copy les arbitrage

      .Range("i" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

        Range(Cells(50, Colonne2), Cells(DerLigne, Colonne2 + 1)).Copy ' copy journée + poules

      .Range("b" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

    Next I2

  End With

    Application.CutCopyMode = False

End Sub

crdialement

Bonjour

Il faut nettoyer complètement les colonnes de reception

Il reste des données dans les colonnes B et C de la page "liste matchs"

Pour les effacer utilises

    .Range("E10:E" & Rows.Count).ClearContents
    .Range("H10:H" & Rows.Count).ClearContents
    .Range("I10:I" & Rows.Count).ClearContents
    .Range("B10:C" & Rows.Count).ClearContents

merci cela fonctionne parfaitement maintenant .

j'ai une autre question un peu similaire

je voudrais copier de la feuille "liste matchs " vers "poules" toutes lignes contenant en colonne C la valeur "poule 01" par exemple

et je ne vois pas comment insérer ca dans le code

Bonjour

A voir

re bonjour

je reviens vers vous pour 2 problèmes :

1-

je viens de retravailler les codes que que vous m'avez fourni (macro "crea_tab"), cela fonctionne en l’exécutant depuis le VBA , mais quand je l'exécute depuis le bouton "creation du tableau des matchs" sur la feuille "infos" , ca ne fonctionne pas et je n'arrive a voir pourquoi

2-

sur la feuille " terrain" je voudrais programmer l'heure des matchs , j'ai déja fait une macro "horaire" qui fonctionne sur un tableau , mais vu qu'il y a plusieurs tableaux les uns en dessous des autres je n'arrive pas a la faire fonctionner . ( elle doit se lancer a la fin a la fin de crea tab )

je vous remercie d'avance pour votre aide

cordialement

Bonsoir

aurelien44300 a écrit :

ca ne fonctionne pas

Il faut être plus précis

la macro se lance , mais les éléments copiés ne sont pas bon . si tu fais l'essai avec le fichier , en la lancant du VBA elle copie tout bien ou il faut , et en cliquant sur le bouton , cela fait comme quand mais colonnes listes matchs n'étaient pas vide.

Bonjour

Je ne comprends toujours pas

Que cela soit en cliquant sur le bouton ou en lançant directement la macro à partir de l'éditeur, j'obtiens le même résultat (au moins à 1ère vue)

Les pages "liste matchs" et "terrain" contiennent à chaque fois les mêmes informations

Bonjour

voila ce que j'obtiens en exécutant depuis icone macro et " crea table " executer

capture vba

et voila ce que j'obtiens en cliquant sur le bouton

capture bouton

cordialement

Bonjour

Au vu de ton profil tu indiques 2010, et les tests que j'ai fait sur 2010 obtiennent le même résultat

Mais à le vue de tes images, j'ai vu que tu utilisais 2013

J'ai refait les mêmes tests avec 2013 et là j'obtiens un résultat différent suivant l'appel de la macro

C'est très bizarre et Je ne sais pas pourquoi

Je continue à faire des tests

Bonjour j'ai un pc avec 2010 et un autre avec 2013 , et c'est vrai que la j'ai fait les tests sur 2013 , étrange comme erreur

Bonsoir Aurelien et Banzai64,

Je n'ai pas l'explication exacte du bug.

J'ai exécuté le code pas à pas et je suis arrivé à la conclusion que probablement, lorsqu'on lance le code à partir du bouton, il s’exécute trop vite dans office 2013 et donc se mélange les pédales.Il n'a donc pas le temps de récupérer les données de la feuille source pour coller.

J'ai donc changer de méthode de copie. Et là j'ai conforté mon hypothèse( ça peut se discuter).

Au final, en otant le with... end with et en utilisant la méthode copy destination:(je reste sur la feuille source et j'envoie la copie directement vers la destination), le bug ne se reproduit plus.

Je vous laisse tester et me dire si vous avez un autre résultat

Bonjour

Oui c'est étrange, peut-être existe t-il une explication

J'ai posé le problème ici https://forum.excel-pratique.com/excel/probleme-de-copier-coller-avec-2013-t47106.html

On va attendre si quelqu'un connait l'explication


Bonjour rudolf

Et merci de ton implication mais ... et oui il y a un mais

J'ai précisé dans l'autre fil que la copie doit se faire en valeur (du moins pour les 3 premières copies) car des formules sont présentent dans l'original

Je ne suis pas sur que cela soit la vitesse car entre le bouton et l’exécution directe il ne doit pas y avoir de grande différence

Merci encore

Bonjour

comme une solution à été trouvée, reprenons le cours du fil

@aurelien44300

Ta macro horaires ne marque des horaires que dans la page "liste matchs" et toi tu les veux sur la page "Terrains"

Manuellement il faudrait que tu notes les horaires que tu veux obtenir automatiquement

Voir le fichier en cours ( en tests)

voici le fichier avec les commentaires sur les matchs

Bonjour

A tester

bonjour

merci , mais cela ne fonctionne pas tout ta fait comme je voudrais .

je m'explique , voila ce que j'obtiens :

capture

en faite la macro que tu as fait ne prend pas en compte la poule , il faut que je puisse mettre une durée de match differente pour chaque poule .

si on prends l'exemple de la ligne 20

= A19 + infos!B25

en ligne 21 ( vu qu'on a changé de poule)

=A20 + infos!D25

temps des matchs :

poule 1 = infos! B25

poule 2 = infos! D25

a chaque poule on décale de 2 colonnes entre duree de match

ps: je te remets le fichier avec les heures différentes.

Rechercher des sujets similaires à "probleme copier coller"