aide sur macro de sauvegarde

Le
franck.marian
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").E=
nd(xlUp).Offset(1, 0).Row, "AP" & Sheets("Données").Range("A65535").En=
d(xlUp).Offset(1 + Zone, 0).Row).Value = 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ées

mais j'ai un problème de lancement?

puis j'ai quelques questions sur effacement et le décochage
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michd
Le #26467100
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
Dario Gmail
Le #26467099
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
Michd
Le #26467101
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
Le #26467103
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
Michd
Le #26467109
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
Michd
Le #26467112
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
Le #26467114
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
Michd
Le #26467129
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
Michd
Le #26467147
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
Publicité
Poster une réponse
Anonyme