Programmation en VBA sous excel 2007
loulou
-
loulou -
loulou -
Bonjour,
J'ai un problème en vba sous excel 2007 que je n'arrive pas a résoudre. je voudrai savoir si c'est possible de recopier des cellules mais seulement si on a rempli une case par exemple la date de réalisation de l'achat, car pour le moment mon programme selectionne la plage de données et recopie mais si je veux copier 15 ligne ils faut je clique 3 fois que le bouton car jais des plages de cellules fusionner.
Voici mon prgramme que j'ai creer
Sub Macro1()
'
' Macro1 Macro
'
If Range("K37") = "ne pas recopier" Then
End If
If Range("K37") = "recopier" Then
Range("A3:A9,C3:D9,G3:L9").Select
Range("G3").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I3:J3").ClearContents
End If
If Range("K38") = "ne pas recopier" Then
End If
If Range("K38") = "recopier" Then
Range("A10:A16,C10:D16,G10:L16").Select
Range("G10").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I10:J16").ClearContents
End If
If Range("K39") = "ne pas recopier" Then
End If
If Range("K39") = "recopier" Then
Range("A17:A23,C17:D23,G17:L23").Select
Range("G17").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I17:J23").ClearContents
End If
If Range("K40") = "ne pas recopier" Then
End If
If Range("K40") = "recopier" Then
Range("A24:A30,C24:D30,G24:L30").Select
Range("G24").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I24:J30").ClearContents
End If
'Aller à la derniére ligne
Dim ligne As Long
Worksheets("archive").Select
ligne = (Cells.SpecialCells(xlCellTypeLastCell).Row) - 1
Rows(ligne).Select
Selection.Insert Shift:=xlDown
Range("A65536").End(xlUp).Offset(1, 0).Select
End Sub
J'ai un problème en vba sous excel 2007 que je n'arrive pas a résoudre. je voudrai savoir si c'est possible de recopier des cellules mais seulement si on a rempli une case par exemple la date de réalisation de l'achat, car pour le moment mon programme selectionne la plage de données et recopie mais si je veux copier 15 ligne ils faut je clique 3 fois que le bouton car jais des plages de cellules fusionner.
Voici mon prgramme que j'ai creer
Sub Macro1()
'
' Macro1 Macro
'
If Range("K37") = "ne pas recopier" Then
End If
If Range("K37") = "recopier" Then
Range("A3:A9,C3:D9,G3:L9").Select
Range("G3").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I3:J3").ClearContents
End If
If Range("K38") = "ne pas recopier" Then
End If
If Range("K38") = "recopier" Then
Range("A10:A16,C10:D16,G10:L16").Select
Range("G10").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I10:J16").ClearContents
End If
If Range("K39") = "ne pas recopier" Then
End If
If Range("K39") = "recopier" Then
Range("A17:A23,C17:D23,G17:L23").Select
Range("G17").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I17:J23").ClearContents
End If
If Range("K40") = "ne pas recopier" Then
End If
If Range("K40") = "recopier" Then
Range("A24:A30,C24:D30,G24:L30").Select
Range("G24").Activate
Selection.Copy
Sheets("archive").Select
ActiveSheet.Paste
Worksheets("achat").Range("I24:J30").ClearContents
End If
'Aller à la derniére ligne
Dim ligne As Long
Worksheets("archive").Select
ligne = (Cells.SpecialCells(xlCellTypeLastCell).Row) - 1
Rows(ligne).Select
Selection.Insert Shift:=xlDown
Range("A65536").End(xlUp).Offset(1, 0).Select
End Sub
1 réponse
-
Bonjour,
Faudrait d'abord expliquer ce que tu veux faire parce que...
1°) Ca sert à rien..If Range("K37") = "ne pas recopier" Then End If
2°)If Range("K37") = "recopier" Then 'Sélection d'une plage multiple Range("A3:A9,C3:D9,G3:L9").Select 'Désactive la sélection multiple et sélectionne G3 Range("G3").Activate 'Copie de G3 Selection.Copy Sheets("archive").Select 'Copie de G3 sur la feuille "archive" ... MAIS OU ??? ActiveSheet.Paste 'Vide la plage "I3:J3" ?? Worksheets("achat").Range("I3:J3").ClearContents End If
Là ça devient dur,dur à comprendre !!
A=
-
enfaite je dois recopier la plage de cellule Range("A3:A9,C3:D9,G3:L9") ainsi que d'autre plage de cellule mais je dois les recopier sur une autre feuille excel seulement si j'ai rempli une date de réalisation. Car pour le moment ca fonctionne mais il faut que j'appui 5 fois si j'ai 5 plage de cellule a archiver. Je voudrais savoir si c'est possible de copier toute une plage mais ne recopier que celle ou j'ai une date de réalisation. Je sais pas si tu peux mieux comprendre sinon je t'enverrai mon fichier excel. Merci
-
-
-
-
Enfaite ce que je recherche pour mon projet c'est une fonction ou une boucle dans laquel je copie toute une feuille que si certaine case sont remplis et la colle sur ma deuxiéme feuille excel et dans le même classeur. car j'ai fait avec une boucle "If ... End If" pour chaque plage de cellule mais le probléme c'est qu'il faut que je clique plusieurs fois sur mon bouton. je n'arrive pas avec la boucle "If ... End If" à copier toute une feuille que si certaine case sont remplis et la colle dans une autre feuille
-