Copier cellules d'un classeur à un autre

Bonjour,

J'ai trois questions à poser, je vais donc les traiter une par une:

QUESTION 1

J'ai posé une question à laquelle Dan a répondu parfaitement (Encore Merci) puis j'en ai reposé une autre mais pas de réponse de sa part ni d'autre personne. J'ai posté en début d'aprem, donc c'est surement normal mais bon , je vous remets le lien au cas ou, ma question est dans le dernier post.

https://forum.excel-pratique.com/excel/message-d-erreur-13-vba-t56465.html

QUESTION 2

J'ai deux classeurs,

Classeur 1 : Questions somme colonne TOTAL ( c'est le classeur que m'a corrigé Dan )

Classeur 2 : Question Bilan

Dans le classeur "Question Bilan", il y a la cellule "Sport" et la cellule "Musique", les numéros de lignes de ces deux cellules peuvent varier, par conséquent leur coordonnées ne sont pas fixes.

Les cellules à droite de la cellule "Sport" et de la cellule "Musique" correspondent à une copie de la valeur ( Pas de la mise en forme)d'une "cellule 1" et "cellule 2" du classeur "Questions somme colonne TOTAL"

D'autre part,

Dans le classeur "Questions somme colonne TOTAL" , Il y a les cellules "Stock 100" et "stock 117" .

Les numéros de ligne des cellules "Stock 100" et "Stock 117" peuvent varier.

La "cellule 1" correspond au croisement de "la ligne de stock 100" et de la colonne "TOTAL"

Attention: Le numéro de colonne de la colonne Total peut varier aussi

Dans le classeur : "Question Bilan" , j'ai essayé de faire une macro dans la feuille "flux de trésorerie", mais quand je l'essaye ça fait bugger excel.

J'ai mis un " ' " devant "call macro1" pour la désactiver pour pas faire bugger excel dès qu'on ouvre le fichier "Question Bilan"

Donc voilà , avez vous une solution?

Question 3

Cette question est un peu plus rapide .

Sur un un post précédent, j'avais fait une erreur , j'avais oublié de rajouter le "End If":

Private Sub Macro2()

'VIDE SI 0 dans colonne TOTAL

For J = 2 To 60
For I = 4 To 220
If Cells(1, J).Value = "TOTAL" Then Sheets("Prévisionnel").Cells(I, J).Select
If Selection.Value = 0 Then Selection.ClearContents
Next I
Next J
End Sub

Finalement Dan m'a proposé un autre code, toujours avec le "End If"

    Private Sub Macro2()

    'VIDE SI 0 dans colonne TOTAL

    For J = 2 To 60
    For I = 4 To 220
    If UCase(Cells(1, J).Value) = "TOTAL" Then
    If Sheets("Prévisionnel").Cells(I, J).Value = 0 Then Sheets("Prévisionnel").Cells(I, J).ClearContents
    End If
    Next I
    Next J
    End Sub

Cependant dans un autre code ( cf code suivant) je n'ai pas de "End if", et il marche très bien, pourquoi?

(C'est le Macro1 du classeur "Questions somme colonne TOTAL")

Private Sub Macro1()
'Mise en forme automatique de la colonne TOTAL

For J = 2 To 60
If Cells(1, J).Value = "TOTAL" Then Sheets("Prévisionnel").Range(Cells(1, J), Cells(220, J)).Select

    'COULEUR INTERIEUR
    'If Cells(1, j).Value = "TOTAL" Then Selection.Interior.Color = RGB(174, 240, 50)

'LARGEUR BORDURE GAUCHE ET DROITE
If Cells(1, J).Value = "TOTAL" Then Selection.Borders(xlEdgeLeft).Weight = 4
If Cells(1, J).Value = "TOTAL" Then Selection.Borders(xlEdgeRight).Weight = 4

'LIGNE CONTINUE BORDURE DROITE ET GAUCHE
If Cells(1, J).Value = "TOTAL" Then Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
If Cells(1, J).Value = "TOTAL" Then Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

'COULEUR BORDURE DROITE ET GAUCHE
If Cells(1, J).Value = "TOTAL" Then Selection.Borders(xlEdgeLeft).Color = RGB(255, 50, 10)
If Cells(1, J).Value = "TOTAL" Then Selection.Borders(xlEdgeRight).Color = RGB(255, 50, 10)

'SELECTION EN GRAS
If Cells(1, J).Value = "TOTAL" Then Selection.Font.Bold = True

'COULEUR POLICE
If Cells(1, J).Value = "TOTAL" Then Selection.Font.Color = RGB(255, 50, 70)

Next J

End Sub

Voilà, c'est tout.

Merci d'avance, et j'espère que vous pourrez répondre à mes questions,

Gulli


Le deuxième fichier!!!!!!

17question-bilan.zip (15.91 Ko)

Salut,

Sur le fil dont tu nous fournis le lien dans ta question 1, Dan t’a posé des questions et il t’indique clairement dans sa dernière ligne qu’il attend une réponse de ta part.

Question 3 : If ... Then / End If est un peu spécial et constitue une sorte d’exception dans les codes VBA. Si la condition If ne renvoie qu’une seule instruction, tu peux l’écrire sur la même ligne à la suite de Then et ne pas inscrire End If. Si la condition If renvoie plusieurs instructions, tu dois obligatoirement écrire chacune des instructions sur une ligne séparée et inscrire End If tout à la fin.

Si tu n’as qu’une seule instruction, tu PEUX écrire trois lignes (1 ligne If …. Then, 1 ligne avec l’instruction et une ligne End If).

Si ta question 2 est toujours d’actualité, je pourrais m’y pencher. A toi de dire.

Cordialement.

Bonjour Yvouille et merci pour ta réponse.

Désolé pour le temps de réponse, j'étais un peu occupé cette semaine.

Effectivement, Dan m'a répondu et je lui ai renvoyé une réponse.

Concernant la question 2, oui elle est toujours d'actu.

Tu as une solution?

Merci d'avance

Cordialement,

Gulli

Salut,

Ton fichier ne comporte pratiquement aucunes données – même des données bidon – et ça n’aide vraiment pas à la compréhension de tes explications ni de ce que devrait faire tes macros.

Ensuite tu as une assez grande quantité de macro et je ne sais pas exactement quelle est celle qui ne fonctionne pas comme tu le désires. Je ne sais pas non plus ce que réalise de faux cette macro, ni ce que tu voudrais qu’elle réalise à la place.

Lorsque je sélectionne la ‘Feuil1’ du fichier ‘Questions somme colonne TOTAL’ puis que je reviens à la feuille ‘Prévisionnel’, une macro événementielle est démarrée et ça tourne dans le vide sans fin.

Je pense qu’il aurait mieux valu continuer la discussion avec Dan qui semble connaitre ces fichiers. Je veux bien tenter de t’aider quand même, mais il faudra alors que tu sois plus précis dans ta demande.

Amicalement.

Salut Yvouille,

Dan m'a répondu aujourd'hui, je vais voir le reste avec lui par la suite.

Encore merci pour ton aide,

Cordialement,

Gulli

Rechercher des sujets similaires à "copier classeur"