Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aide sur macro de sauvegarde

32 réponses
Avatar
franck.marian
Bonjour,

Besoin d'aide pour une sauvegarde=20

(Sub Recopie()
Zone =3D Range("B65535").End(xlUp).Row - 15
Sheets("Donn=C3=A9es").Range("A" & Sheets("Donn=C3=A9es").Range("A65535").E=
nd(xlUp).Offset(1, 0).Row, "AP" & Sheets("Donn=C3=A9es").Range("A65535").En=
d(xlUp).Offset(1 + Zone, 0).Row).Value =3D Sheets("listes").Range("A15", Sh=
eets("listes").Range("AP15").Offset(Zone, 0)).Value
End Sub)

cette marco copie une partie d'un onglet sur un onglet donn=C3=A9es

mais j'ai un probl=C3=A8me de lancement?

puis j'ai quelques questions sur effacement et le d=C3=A9cochage

10 réponses

1 2 3 4
Avatar
Michd
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 :
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
Avatar
Dario Gmail
Bonjour MichD,
je m'explique mon besoin principal et d'archiver une fiche qui comprend tex te et des cases a cocher,
j'aimerai archiver celle-ci, alors j'ai créer un onglet avec les liais ons sur ma fiche manuel et case a coché
puis une macro qui sauvegarde dans une base de donnée (la j'ai la macr o 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
Avatar
Michd
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
Avatar
Michd
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
Avatar
Dario Gmail
j'ai copié mon fichier ici
`
https://www.cjoint.com/c/HCmrAFOUUy1
Avatar
Michd
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
Avatar
Michd
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
Avatar
Dario Gmail
Le lundi 12 mars 2018 20:20:05 UTC+1, Michd a écrit :
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 f euille
"Listes". Cela prend un peu de pratique, mais facilite la compréhens ion 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

Merci pour la précision
maintenant j'aimerai ajouter le raz de la fiche d'idée que je viens de sauvegarder
å;G5;D7;D12;D16;D24;E33;G33;D36;F67:H74;F76:F77 les zone à vider a insi que décocher les cases à cocher de cette fiche
Puis est il possible de faire une recherche dans l'onglet 'données' af in de remplir la fiche (fonction décalé) ainsi de coché cell e ci?
Merci
Avatar
Michd
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
Avatar
Michd
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
1 2 3 4