Interdiction de copie dans 1 cellule

Re

En tenant compte des tables sur Oui et sur Non, essayez le code comme ceci

Sub Partie1()
Dim lgp As Byte, LgI As Byte, i As Byte, nbtable As Byte

Application.ScreenUpdating = False

Sheets("PARTIE1").Range("C6:C55").ClearContents
lgp = 6
LgI = 6

With Sheets("INSCRIPTIONS")
    nbtable = .Range("C2")
    For i = 1 To nbtable
        Select Case .Cells(3, i + 4)
            Case Is = "NON"
                .Cells(LgI, 4).Resize(4, 1).Copy
                Sheets("PARTIE1").Range("C" & lgp).PasteSpecial Paste:=xlPasteValues
                LgI = LgI + 4
                lgp = lgp + 5

            Case Is = "OUI"
                .Cells(LgI, 4).Resize(5, 1).Copy
                Sheets("PARTIE1").Range("C" & lgp).PasteSpecial Paste:=xlPasteValues
                LgI = LgI + 5
                lgp = lgp + 5
        End Select
    Next i
End With
End Sub

Si ok et terminé pensez à cloturer le fil

Crdlt

OK Merci beaucoup; je fais l'essai et vous tiens au courant

Bonne soirée

Bonjour,

J'ai fais l'essai et tout fonctionne très bien.

Pour passer de la partie à la partie 2; je dois copier PARTIE1: NOM + POINT (colonne C et D) dans PARTIE2: (colonne C et D) pour faire le calcul des points.

Je n'ai pas tout compris du langage boucle; que faut il modifier ?

Cordialement

RE;

je n'ai pas compris la signification de: LgI et lgp
Poovez vous me traduire SVP

Cordialement

Bonjour

Pour passer de la partie à la partie 2; je dois copier PARTIE1: NOM + POINT (colonne C et D) dans PARTIE2: (colonne C et D) pour faire le calcul des points.
Je n'ai pas tout compris du langage boucle; que faut il modifier ?

Il ne faut rien modifier dans le code. Votre demande est un autre code à faire
Ce qu'il faut savoir, c'est ce que l'on doit modifier au niveau des tables parce que je suppose qu'il faut aussi recopier les Oui et Non concernant les tables

je n'ai pas compris la signification de: LgI et lgp

LgI --> Référence Ligne de la feuille Inscription
LgP --> Référence Ligne de la feuille Partie

Je vais regarder pour passer à la partie 2.

A quoi sert le code lié au bouton Départ Partie 2 ?

RE

Ce bouton sert à trier les joueurs PARTIE1 (du plus grd nbre de points au plus petit) puis

recopier en PARTIE 2 (COLONNE c2/D2)

Cordialement

Ok mais vous ne répondez pas à mon autre question sur les tables

REBONJOUR,

J'ai compris que vous vous serviez de la cellule C2 INSCRIPTIONS

With Sheets("INSCRIPTIONS")
nbtable = .Range("C2")
For i = 1 To nbtable
Select Case .Cells(3, i + 4)
Case Is = "NON"

Pour simplifier, je pense, je me servirai toujours de la feuille INSCRIPTIONS; pour le choix des tables: E3:N3

Les lignes 1,2,3 PARTIE1 et PARTIE2 seront supprimées ou masquées.

Cordialement

re

Pour passer de la partie à la partie 2; je dois copier PARTIE1: NOM + POINT (colonne C et D) dans PARTIE2: (colonne C et D) pour faire le calcul des points.

En supposant que vous ne triez plus la colonne C une fois partie 1 terminée, le code ci-dessous fera ce que vous demandez

Sub Partie2()
Dim dlg As Byte

Application.ScreenUpdating = False

Sheets("PARTIE2").Range("C6:D55").ClearContents

With Sheets("PARTIE1")
    dlg = .Range("C" & Rows.Count).End(xlUp).Row
    .Cells(6, 3).Resize(dlg - 5, 2).Copy
    Sheets("PARTIE2").Range("C6").PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub

Pour simplifier, je pense, je me servirai toujours de la feuille INSCRIPTIONS; pour le choix des tables: E3:N3

Ok. Donc le code ne change rien au niveau des tables qui seront donc celles prévues dans les inscriptions. Ce qui d'ailleurs plus simple puisque je suppose qu'une fois les tables attribuées elles ne sont plus modifiées

Crdlt

RE,

MERCI,

Mais il faut tout de meme pouvoir chancher l'attribution des tables à 5 selon les parties; je vais essayer

Cordialement

RE,

Effectivement ca ne marche pas.

2 choses: il faut trier les joueurs par points (du plus grand au plus petit), supposons INSCRIPTIONS ; colonne F; F6: F43 (ça je sais faire)

Les boutons seront redimentionnés et tous en INSCRIPTIONS Lignes 4 et 5

puis copier en partie 2 (avec sélection des tables de 5; meme principe que INSCRIPTIONS:/PARTIE 1 en rajoutant INSCRIPTION: F6.,F7,F8..............et en recopiant en PARTIE 2 D6;D7;D8..............................

J'espère avoir été clair

Cordialement

Mais il faut tout de meme pouvoir chancher l'attribution des tables à 5 selon les parties; je vais essayer

Pourquoi ne pas me l'avoir dit plus tôt ?

2 choses: il faut trier les joueurs par points (du plus grand au plus petit), supposons INSCRIPTIONS ; colonne F; F6: F43 (ça je sais faire)

Si je comprends :
1. vous allez utiliser la colonne F de la feuille Inscription pour récupérer les points de la partie 1
2. trier les inscrits selon les points obtenus ?
3. adapter les tables en ligne 3 ?

La copie en Partie n'est pas le souci actuellement. Le principal est de savoir ce qui est à copier parce que précédemment vos écriviez de copier colonne C et D vers Partie 2 colonne C et D.
Et là avec votre post, ce n'est plus la même chose.

Merci d'être précis sur les opérations que vous faites, sans quoi je ne sais pas avancer.

OK

Pour moi ça parait évident (peut etre trop) J'avance et découvre les problèmes petit à petit

Il y avait le probléme de la copie TABLE 4/TABLE 5 (en partie résolu grace à votre aide) mais je dois également gérer le cumul des points ; PARTIE1,PARTIE2,PARTIE3

en sélectionnant les joueurs par points (TABLE 1: les + haut; TABLE 6 dans L'exemple les + bas)

Sinon

Je ne peux etre plus clair:

2 choses: il faut trier les joueurs par points (du plus grand au plus petit), supposons INSCRIPTIONS ; colonne F; F6: F43 (ça je sais faire)

puis copier en partie 2 (avec sélection des tables de 5; meme principe que INSCRIPTIONS:/PARTIE 1 en rajoutant INSCRIPTION: F6.,F7,F8..............et en recopiant en PARTIE 2 D6;D7;D8..............................

Si je comprends :
1. vous allez utiliser la colonne F de la feuille Inscription pour récupérer les points de la partie 1
2. trier les inscrits selon les points obtenus ?
3. adapter les tables en ligne 3 ?

Qu'est ce qu'l manque?

1 fois les tables remplies PARTIE 2 PARTIE3 je pense pouvoir me débrouiller

Cordialement en encore merci pour votre patience

2 choses: il faut trier les joueurs par points (du plus grand au plus petit), supposons INSCRIPTIONS ; colonne F; F6: F43 (ça je sais faire)

Ok vous me dites que vous savez faire donc je n'ai rien à faire de ce coté. Si c'est le cas, je voudrais voir un exemple de ce que vous pouvez avoir en points sur la Partie 1 et de ce qui sera repris en colonne F de la feuille Inscriptions.

Après plus bas dans votre post je vois que vous reprenez ce que j'ai écrit dans un post précédent en me mettant la question ci-dessous

Qu'est ce qu'l manque?

Je ne comprends pas pourquoi vous me poser la question car les 3 points sont des questions auxquelles j'aimerais avoir votre confirmation


REM : Lorsque vous reprenez un texte d'un post, pensez à utilisez l'outil "Citation" dans la barre de menu en cliquant sur l'icone " et en collant le texte dans la fenêtre.

Bonjour;

C'est trop compliqué à expliquer.

Pour terminer, pouvez SVP me faire le code pour copier INSCRIPTIONS: F6:G27 dans PARTIE2: C6:D30 en tenant compte des tables à 4 ou à 5;

Après, je me débrouillerai.

Cordialement

Bonjour

Sur base de votre dernier fichier, le code comme ceci

Sub Partie2()
'Dan - 11/11/24
'https://forum.excel-pratique.com/excel/interdiction-de-copie-dans-1-cellule-196572
'Lancement partie 2
Dim lgp As Byte, lgI As Byte, i As Byte, nbtable As Byte

Application.ScreenUpdating = False

Sheets("PARTIE2").Range("C6:D55").ClearContents

With Sheets("INSCRIPTIONS")
    lgp = 6
    LgI = 6
    nbtable = .Range("C2")
    For i = 1 To nbtable
        Select Case .Cells(3, i + 4)
            Case Is = "NON"
                .Cells(LgI, 6).Resize(4, 2).Copy
                Sheets("PARTIE2").Range("C" & lgp).PasteSpecial Paste:=xlPasteValues
                LgI = LgI + 4
                lgp = lgp + 5

            Case Is = "OUI"
                .Cells(LgI, 6).Resize(5, 2).Copy
                Sheets("PARTIE2").Range("C" & lgp).PasteSpecial Paste:=xlPasteValues
                LgI = LgI + 5
                lgp = lgp + 5
        End Select
    Next i
End With
End sub

Si vous voulez je vous poste le code que j'ai préparé et qui rapatrie les données la partie 1 vers Inscription

Cordialement

Bonjour

Avec plaisir.

Je vais essayer de comprendre vos codes pour les adapter à la partie 3

Cordialement et encore merci

REBONJOUR,

Est il compliqué de bloquer la macro et afficher 1 message du style "CORRIGER LES ERREURS AVANT DE CONTINUER" si les cases de FORMULES (=SI; ) en colonne E affichent "ERREUR"

Si trop compliqué; on laisse tomber.

Cordialement

Re

Voici les deux codes pour rapatrier les points de partie 1 dans la feuille Inscription et effectuer le tri

1. importer les points de partie 1 dans la feuille Inscription

Sub Importation_points_Partie1()
Dim dlg As Byte

Application.ScreenUpdating = False

With Sheets("INSCRIPTIONS")
    dlg = .Range("F" & Rows.Count).End(xlUp).Row
    .Range("F6:G" & dlg).ClearContents
End With

With Sheets("PARTIE1")
    dlg = .Range("C" & Rows.Count).End(xlUp).Row
    .Cells(6, 3).Resize(dlg - 5, 2).Copy
    Sheets("INSCRIPTIONS").Range("F6").PasteSpecial Paste:=xlPasteValues
End With
Call tri
Application.ScreenUpdating = True
End Sub

2 . Tri des données importées

Sub tri() 'trier PI dans feuille inscription
Dim dlg As Byte

With Sheets("INSCRIPTIONS")
    dlg = .Range("F" & Rows.Count).End(xlUp).Row
    .Range("F6:G" & dlg).Select

    With .Sort
        With .SortFields
            .Clear
            .Add2 Key:=Sheets("INSCRIPTIONS").Range("G6:G" & dlg), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        End With
        .SetRange Sheets("INSCRIPTIONS").Range("F5:G" & dlg)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    .Range("F6").Select
End With
End Sub

Rem :
- il est supposé que vous êtes positionné sur la feuille Inscription lorsque vous exécuter le code Importation
- il vous suffit d'associer un bouton au code Importation_points_partie1
- Sachez que l'on pourrait aussi ne prévoir qu'un seul code pour l'importation des données vers la feuille Inscription pour chacune des parties. Dans ce cas, il faudrait prévoir les bouton sur les feuilles Partie1 et Partie 2


Est il compliqué de bloquer la macro et afficher 1 message du style "CORRIGER LES ERREURS AVANT DE CONTINUER" si les cases de FORMULES (=SI; ) en colonne E affichent "ERREUR"

Dans quels cas avez-vous des erreurs ?
Quel est le code que vous voulez bloquer ? le Code qui génère la Partie1 ?

Sinon on pourrait oui. Mais d'abord avez-vous pensé à utiliser la fonction SIERREUR dans votre formule ? Ne serait-ce pas plus simpl

Bonjour,

Je vais tester tout cela;

On a des erreurs si: EXEMPLE:TABLE 1 (PARTIE1:PARTIE2;PARTIE3) E6<>0; Signalé en E8 (le total des points doit impérativemnt =0)

Cordialement

Rechercher des sujets similaires à "interdiction copie"