gratifiant > microsoft.* > microsoft.excel

franck.marian (12/03/2018, 17h27)
Bonjour,

Besoin d'aide pour une sauvegarde

(Sub Recopie()
Zone = Range("B65535").End(xlUp).Row - 15
Sheets("Données").Range("A" & Sheets("Données").Range("A65535").End(xlUp).Offset (1, 0).Row, "AP" & Sheets("Données").Range("A65535").End(xlUp).Offset (1 + Zone, 0).Row).Value = Sheets("listes").Range("A15", Sheets("listes").Range("AP15").Offset(Zone, 0)).Value
End Sub)

cette marco copie une partie d'un onglet sur un onglet données

mais j'ai un problème de lancement?

puis j'ai quelques questions sur effacement et le décochage
Michd (12/03/2018, 17h38)
Bonjour,

C'est bien de transmettre ton code. Cependant, peux-tu expliquer ce que tu
veux faire. Quelles sont les questions dont tu voudrais avoir une réponse?

MichD

a écrit dans le message de groupe de discussion :
85022d60-ef31-47ca-a769-b29a52dfa1a8...

Bonjour,

Besoin d'aide pour une sauvegarde

(Sub Recopie()
Zone = Range("B65535").End(xlUp).Row - 15
Sheets("Données").Range("A" &
Sheets("Données").Range("A65535").End(xlUp).Offset (1, 0).Row, "AP" &
Sheets("Données").Range("A65535").End(xlUp).Offset (1 + Zone, 0).Row).Value =
Sheets("listes").Range("A15", Sheets("listes").Range("AP15").Offset(Zone,
0)).Value
End Sub)

cette marco copie une partie d'un onglet sur un onglet données

mais j'ai un problème de lancement?

puis j'ai quelques questions sur effacement et le décochage
Dario Gmail (12/03/2018, 17h47)
Bonjour MichD,

je m'explique mon besoin principal et d'archiver une fiche qui comprend texte et des cases a cocher,

j'aimerai archiver celle-ci, alors j'ai créer un onglet avec les liaisons sur ma fiche manuel et case a coché

puis une macro qui sauvegarde dans une base de donnée (la j'ai la macro cité mais qui fonctionne pas très bien)

puis le raz de la fiche et des coches

ensuite j'aimerai rechercher dans la base de données la dernière fiche sauvegarder avec certain critères (zone impacts) puis la mettre en forme sur une fiche + case coché du même type que la principal....

Merci
Michd (12/03/2018, 17h53)
On peut écrire ton code comme ceci. Mais si tu n'explique pas ce que tu veux
faire, difficile d'optimiser ce code!

'--------------------------------------
Sub Recopie()
Dim DerLig As Long, Zone As Long

Zone = Range("B65535").End(xlUp).Row - 15

With Sheets("Données")
'Trouve la dernière ligne occupée de la plage A:AP
'j'additionne 1 pour avoir la première ligne disponible
DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Range("A" & DerLig & ":AP" & DerLig).Value = _
Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _
Offset(Zone, 0)).Value

End Sub
'--------------------------------------

MichD
Michd (12/03/2018, 18h05)
Désolé, je ne comprends pas, il faut être plus explicite.

A ) Quel est le nom de l'onglet de données que tu veux copier? Quelle est
l'adresse de la plage de cellule à copier?
B ) Sur quel onglet (nom) de ton classeur veux-tu copier cette plage de
cellules? À quel endroit dans cette feuille?

C ) Quel est le nom de la feuille que tu veux archiver? Où veux-tu
l'archiver? Dans un classeur existant? Si oui, quel est le chemin pour
atteindre ce classeur? Quel est le nom de ce classeur ? Tu veux ajouter la
feuille à ce classeur ?

Tu es dans Excel, chaque classeur, chaque feuille a un nom, chaque plage de
cellules, une adresse. Pour pouvoir écrire du code, tu dois être très
explicite dans le texte de ta question.

MichD
Dario Gmail (12/03/2018, 18h27)
j'ai copié mon fichier ici
`
Michd (12/03/2018, 19h15)
Et c'est quoi ton problème!

En passant, le "chatting" ne m'intéresse pas. Ou bien tu expliques ce que tu
veux ou bien tu t'organises tout seul. La publication de code ou du classeur
ne m'indique pas ce que tu désires effectuer comme travail. J'espère être
clair!

MichD
Dario Gmail (12/03/2018, 19h35)
Le lundi 12 mars 2018 19:15:30 UTC+1, Michd a écrit :
> Et c'est quoi ton problème!
> En passant, le "chatting" ne m'intéresse pas. Ou bien tu expliques ce que tu
> veux ou bien tu t'organises tout seul. La publication de code ou du classeur
> ne m'indique pas ce que tu désires effectuer comme travail. J'espère être
> clair!
> MichD


Pour commencer la macro fonctionne que quand je me trouve sur l'onglet 'listes' (copie de la zone =A15:AP15)

Si je l'execute de l'onglet 'fiche d'idée' il me copie l'onglet 'listes'

merci de ton aide pour ce premier point

Dario
Michd (12/03/2018, 20h20)
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With
permet de désigner les objets avec lesquels on travaille.
En écrivant With Worksheets("Listes") on spécifie que l'objet "Range"
appartient à cette feuille. Attention, note le "point" (.) devant le mot
range, qui désigne bien que cet objet "Range" appartient à la feuille
"Listes". Cela prend un peu de pratique, mais facilite la compréhension du
code par n'importe quel initié.

'----------------------------------------------
Sub Recopie()
Dim DerLig As Long, Zone As Long

With Worksheets("Listes")
Zone = .Range("B65535").End(xlUp).Row - 15
End With

With Sheets("Données")
'Trouve la dernière ligne occupée de la plage A:AP
'j'additionne 1 pour avoir la première ligne disponible
DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Range("A" & DerLig & ":AP" & DerLig).Value = _
Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _
Offset(Zone, 0)).Value
End With
End Sub
'----------------------------------------------

MichD
Dario Gmail (12/03/2018, 20h43)
Le lundi 12 mars 2018 20:20:05 UTC+1, Michd a écrit :
[..]
> End Sub
> '----------------------------------------------
> MichD


Merci pour la précision

maintenant j'aimerai ajouter le raz de la fiche d'idée que je viens desauvegarder

=E5;G5;D7;D12;D16;D24;E33;G33;D36;F67:H74;F76:F77 les zone à vider ainsi que décocher les cases à cocher de cette fiche

Puis est il possible de faire une recherche dans l'onglet 'données' afin de remplir la fiche (fonction décalé) ainsi de coché celle ci?

Merci
Michd (12/03/2018, 23h16)
Cette procédure efface le contenu de la plage mentionnée + décoche toutes
les cases à cocher

'-------------------------------------------
Sub test()
Dim Arr(), Elt As Variant, Sh As Shape
Arr = Array("E5", "G5", "D7", "D12", "D16", _
"D24", "E33", "G33", "D36", "F67:H74", "F76:F77")

With Worksheets("Fiche idée")
For Each elt In Arr
If .Range(elt).Cells.Count > 1 Then
.Range(elt).Clear
ElseIf .Range(elt).MergeArea.Cells.Count > 1 Then
.Range(elt).MergeArea.Clear
Else
.Range(elt).Clear
End If
Next
For Each Sh In .Shapes
If TypeName(Sh.OLEFormat.Object) = "CheckBox" Then
Sh.OLEFormat.Object.Value = False
End If
Next
End With
End Sub
'-------------------------------------------

MichD
Dario Gmail (13/03/2018, 06h53)
Le lundi 12 mars 2018 23:16:22 UTC+1, Michd a écrit :
[..]
> End Sub
> '-------------------------------------------
> MichD


Parfait pour cette partie de copie de fichier + vidange

pour la seconde partie agrémenter si possible via une recherche dans l'onglet 'données' afin de remplir la fiche (fonction décalé)ainsi de coché celle ci?

Merci de ton retour sur la faisabilité
Michd (13/03/2018, 11h15)
Lorsque j'aurai compris ta question, tu auras une réponse.
C'est à toi d'être clair dans ta question, je n'ai pas à prendre du temps
seulement pour tenter de comprendre la question.

MichD
Dario Gmail (13/03/2018, 17h30)
Le mardi 13 mars 2018 11:15:18 UTC+1, Michd a écrit :
> Lorsque j'aurai compris ta question, tu auras une réponse.
> C'est à toi d'être clair dans ta question, je n'ai pas à prendre du temps
> seulement pour tenter de comprendre la question.
> MichD


Salut Michd,

Dans l'onglet (fiche d'idée) j'ai deux feuilles la première fichecoté gauche me sert de sauvegarde dans la base de données onglet(Données) avec t'as macro c'est parfait.

le besoin :
la seconde fiche coté droit se remplir automatiquement avec la dernière date trouvé dans l'onglet (Données) et en critère de recherche la cellule (Q5)a sélectionner.

Dans la fiche de droite fais installé des cases a cocher mais j'aimerai restreindre certaine cases à cocher, avec qu'un choix
exemple type de gaspillage (D9) choix Transport, Mouvement, Sur-Qualité, Défauts, Attente, Sur-production, Stock.
donc sept choix disponible mais qu'une sélection possible.

Merci
Michd (13/03/2018, 19h27)
Toutes les macros publiées ainsi que les 2 nouvelles sont dans ce classeur
dans le module MichD



MichD

Discussions similaires